简单3步 js使用cookie实现的购物车功能[原创]

引入JQuery.js支持

加入JQuery.Cookie.js,代码如下

 1  jQuery.cookie = function(name, value, options) {
 2     if (typeof value != ‘undefined‘) { // name and value given, set cookie
 3         options = options || {};
 4         if (value === null) {
 5             value = ‘‘;
 6             options.expires = -1;
 7         }
 8         var expires = ‘‘;
 9         if (options.expires && (typeof options.expires == ‘number‘ || options.expires.toUTCString)) {
10             var date;
11             if (typeof options.expires == ‘number‘) {
12                 date = new Date();
13                 date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
14             } else {
15                 date = options.expires;
16             }
17             expires = ‘; expires=‘ + date.toUTCString(); // use expires attribute, max-age is not supported by IE
18         }
19         var path = options.path ? ‘; path=‘ + options.path : ‘‘;
20         var domain = options.domain ? ‘; domain=‘ + options.domain : ‘‘;
21         var secure = options.secure ? ‘; secure‘ : ‘‘;
22         document.cookie = [name, ‘=‘, encodeURIComponent(value), expires, path, domain, secure].join(‘‘);
23     } else { // only name given, get cookie
24         var cookieValue = null;
25         if (document.cookie && document.cookie != ‘‘) {
26             var cookies = document.cookie.split(‘;‘);
27             for (var i = 0; i < cookies.length; i++) {
28                 var cookie = jQuery.trim(cookies[i]);
29                 // Does this cookie string begin with the name we want?
30                 if (cookie.substring(0, name.length + 1) == (name + ‘=‘)) {
31                     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
32                     break;
33                 }
34             }
35         }
36         return cookieValue;
37     }
38 };
39 function getcookie(name) {
40     var cookie_start = document.cookie.indexOf(name);
41     var cookie_end = document.cookie.indexOf(";", cookie_start);
42     return cookie_start == -1 ? ‘‘ : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
43 }
44 function setcookie(cookieName, cookieValue, seconds, path, domain, secure) {
45     var expires = new Date();
46     expires.setTime(expires.getTime() + seconds);
47     document.cookie = escape(cookieName) + ‘=‘ + escape(cookieValue)
48                                             + (expires ? ‘; expires=‘ + expires.toGMTString() : ‘‘)
49                                             + (path ? ‘; path=‘ + path : ‘/‘)
50                                             + (domain ? ‘; domain=‘ + domain : ‘‘)
51                                             + (secure ? ‘; secure‘ : ‘‘);
52 }

加入购物车功能脚本shop.car.js,代码如下

 1 var shop = {};
 2 shop.addProduct = function(id,name,price,count){
 3     var carInfo = shop.readData();
 4     if(carInfo[id])
 5     {
 6         carInfo[id].count = (parseInt(count) + parseInt(carInfo[id].count));
 7     }
 8     else{
 9         carInfo[id] = {id:id,name:name,price:price,count:count};
10     }
11     shop.saveData(carInfo);
12 };
13
14 shop.removeProduct = function(id){
15     var carInfo = shop.readData();
16     for (var i in carInfo)
17     {
18         if(i == id)
19         {
20             carInfo[i] = undefined;
21         }
22     }
23     shop.saveData(carInfo);
24 };
25
26 shop.saveData = function(info){
27     var infoStr = "";
28     for (var i in info) {
29         var element = info[i];
30         if(element){
31         infoStr += info[i].id + ","+info[i].name + ","+info[i].price + ","+info[i].count + ";";
32         }
33     }
34     var shop_car = $.cookie("shop-car",infoStr);
35 };
36
37 shop.readData = function(){
38     var shop_car = $.cookie("shop-car");
39     var reInfo = {};
40     if(shop_car){
41         shop_car = shop_car.split(";");
42         for(var i= 0 ;i< shop_car.length;i++)
43         {
44             if(shop_car[i])
45             {
46                 shop_car[i] = shop_car[i].split(",");
47                 reInfo[shop_car[i][0]] = {id:shop_car[i][0],name:shop_car[i][1],price:shop_car[i][2],count:shop_car[i][3]};
48             }
49         }
50     }
51
52     return reInfo;
53 }
54
55 shop.clear = function(){
56     $.cookie("shop-car","");
57     return;
58 }

完成以上步骤,简易而强大的前端购物车已经加入项目中了。

code by questionfeet

时间: 2024-10-13 01:44:12

简单3步 js使用cookie实现的购物车功能[原创]的相关文章

jquery.cookie.js 操作cookie实现记住密码功能的实现代码

jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready(function() { if ($.cookie("rmbUser") == "true") { $("#rmbUser").attr("checked", true); $("#user").val($.coo

cookie来实现购物车功能

一.大概思路 1.从cookie中取商品列表 2.判断要添加的商品是否存在cookie中. 3.如果已添加过,则把对应的商品取出来,把要添加的商品的数量加上去. 4.如果没有添加过,则把改商品添加到商品列表中. 5.再把商品列表序列化,加入cookie中. 二.代码实现 1.定义一个购物车商品的pojo public class CartItem { private Long id; private String title; private Long price; private Intege

js操作cookie

    前言 最近的一个项目需要做用户最近浏览的效果,需要使用cookie存储的方式来实现,找了一下相关的资料,于是便有了本篇博文,写js操作cookie的文章挺多的,不过我觉得自己还有必要记录一的,毕竟自己的东西印象更加的深刻,也方便以后的查找使用,再次感谢一下网络资料的无私奉献者们——祝你们身体健康,愿上帝与你们同在. 1:处理cookie的js文件,代码简单注释尚可,建议先看一下W3C有关cookie资料(链接往下拉!) /*useCookie.js:处理cookie的文件*/ /** *

运用JS设置cookie、读取cookie、删除cookie

运用JS设置cookie.读取cookie.删除cookie JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假 设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来 引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭

JS设置cookie、读取cookie、删除cookie

Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦!下面是详细代码,如有错误,请留言指正! JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生

简单两步让博客园支持手机端显示

博客园的模板是没有兼容手机端显示的,阅读体验比较差.本文教你如何简单几步让你的博客支持手机端显示.找一个夜深人静,没有人浏览你博客的时间点,开始吧. 1.添加js代码 在博客园后台的“设置”菜单下,有一项页首Html代码,此处写js代码也是可以生效的,将如下代码复制过去: <script> var content = 'width=device-width, initial-scale=1 user-scalable=no'; var viewport = document.createEle

简单几步打造网络视频直播平台(转)

简单几步打造网络视频直播平台 分类:学以致用 2013-02-04 13:20 阅读(1132)评论(0) 不管是个人玩还是企业用,直播电台总是显得比较高端和神秘,今天我们来看看怎么用简单几步实现基于Flash流媒体服务器的网络视频直接直播平台. 1.服务端准备 常见的免费Flash流媒体服务器有国产的UMS和国际开源的Red5,UMS只有windows平台安装包,而用java开发的Red5更秉承了开源软件一贯兼容特色,可以多平台运行. UMS相对简单,全经典windows程序安装步骤,安装过程

JS设置cookie

cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式.各个cookie

运用JS设置cookie、读取cookie、删除cookie(转)

JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果.解决这个问题