Welcome 微信登录

首页 / 脚本样式 / JavaScript / jQuery基于json与cookie实现购物车的方法

本文实例讲述了jQuery基于json与cookie实现购物车的方法。分享给大家供大家参考,具体如下:
json 格式:
[{"ProductID":ABC","Num":"1"},{"ProductID":DEF,"Num":"2"}]
这里使用到了 $.cookie这个插件。这个插件的代码在文章的最后
/*添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数*/function AddToShoppingCar(id, num) {var _num = 1;if (num != undefined)_num = num;var totalNum = _num; //总数默认为传入参数var cookieSet = { expires: 7, path: "/" }; //设置cookie路径的//$.cookie(cookieProductID, null, cookieSet);//清除Cookievar jsonStr = "[{"ProductID":"" + id + "","Num":"" + _num + ""}]"; //构造json字符串,id是商品idnum是这个商品的数量if ($.cookie(cookieProductID) == null) {$.cookie(cookieProductID, jsonStr, cookieSet); //如果没有这个cookie就设置他}else {var jsonObj = eval("(" + $.cookie(cookieProductID) + ")"); //如果有,把json字符串转换成对象var findProduct = false;//是否找到产品ID,找到则为TRUE,否则为FALSHfor (var obj in jsonObj) {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] = new Object();jsonObj[jsonObj.length - 1].ProductID = id;jsonObj[jsonObj.length - 1].Num = num;}$.cookie(cookieProductID, JSON.stringify(jsonObj), cookieSet); //写入coockieJSON需要json2.js支持}return totalNum;//alert($.cookie(cookieProductID));}
//以下为cookie插件代码jQuery.cookie = function(name, value, options) {if (typeof value != "undefined") { // name and value given, set cookieoptions = options || {};if (value === null) {value = "";options.expires = -1;}var expires = "";if (options.expires && (typeof options.expires == "number" || options.expires.toUTCString)) {var date;if (typeof options.expires == "number") {date = new Date();date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));} else {date = options.expires;}expires = "; expires=" + date.toUTCString(); // use expires attribute, max-age is not supported by IE}var path = options.path ? "; path=" + options.path : "";var domain = options.domain ? "; domain=" + options.domain : "";var secure = options.secure ? "; secure" : "";document.cookie = [name, "=", encodeURIComponent(value), expires, path, domain, secure].join("");} else { // only name given, get cookievar cookieValue = null;if (document.cookie && document.cookie != "") {var cookies = document.cookie.split(";");for (var i = 0; i < cookies.length; i++) {var cookie = jQuery.trim(cookies[i]);// Does this cookie string begin with the name we want?if (cookie.substring(0, name.length + 1) == (name + "=")) {cookieValue = decodeURIComponent(cookie.substring(name.length + 1));break;}}}return cookieValue;}};
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery的cookie操作技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。