jQuery基于json与cookie实现购物车的方法
本文实例讲述了jQuery基于json与cookie实现购物车的方法。分享给大家供大家参考,具体如下:
json格式:
[{'ProductID':ABC','Num':'1'},{'ProductID':DEF,'Num':'2'}]
这里使用到了$.cookie这个插件。这个插件的代码在文章的最后
/* 添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数 */ functionAddToShoppingCar(id,num){ var_num=1; if(num!=undefined) _num=num; vartotalNum=_num;//总数默认为传入参数 varcookieSet={expires:7,path:'/'};//设置cookie路径的 //$.cookie(cookieProductID,null,cookieSet);//清除Cookie varjsonStr="[{'ProductID':'"+id+"','Num':'"+_num+"'}]";//构造json字符串,id是商品idnum是这个商品的数量 if($.cookie(cookieProductID)==null){ $.cookie(cookieProductID,jsonStr,cookieSet);//如果没有这个cookie就设置他 } else{ varjsonObj=eval('('+$.cookie(cookieProductID)+')');//如果有,把json字符串转换成对象 varfindProduct=false;//是否找到产品ID,找到则为TRUE,否则为FALSH for(varobjinjsonObj){ if(jsonObj[obj].ProductID==id){ jsonObj[obj].Num=Number(jsonObj[obj].Num)+_num; totalNum=jsonObj[obj].Num; findProduct=true; break; } } if(findProduct==false){//没找到,则添加 jsonObj[jsonObj.length]=newObject(); jsonObj[jsonObj.length-1].ProductID=id; jsonObj[jsonObj.length-1].Num=num; } $.cookie(cookieProductID,JSON.stringify(jsonObj),cookieSet);//写入coockieJSON需要json2.js支持 } returntotalNum; //alert($.cookie(cookieProductID)); }
//以下为cookie插件代码 jQuery.cookie=function(name,value,options){ if(typeofvalue!='undefined'){//nameandvaluegiven,setcookie options=options||{}; if(value===null){ value=''; options.expires=-1; } varexpires=''; if(options.expires&&(typeofoptions.expires=='number'||options.expires.toUTCString)){ vardate; if(typeofoptions.expires=='number'){ date=newDate(); date.setTime(date.getTime()+(options.expires*24*60*60*1000)); }else{ date=options.expires; } expires=';expires='+date.toUTCString();//useexpiresattribute,max-ageisnotsupportedbyIE } varpath=options.path?';path='+options.path:''; vardomain=options.domain?';domain='+options.domain:''; varsecure=options.secure?';secure':''; document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join(''); }else{//onlynamegiven,getcookie varcookieValue=null; if(document.cookie&&document.cookie!=''){ varcookies=document.cookie.split(';'); for(vari=0;i<cookies.length;i++){ varcookie=jQuery.trim(cookies[i]); //Doesthiscookiestringbeginwiththenamewewant? if(cookie.substring(0,name.length+1)==(name+'=')){ cookieValue=decodeURIComponent(cookie.substring(name.length+1)); break; } } } returncookieValue; } };
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery的cookie操作技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。