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程序设计有所帮助。