jquery.cookie实现的客户端购物车操作实例


Posted in Javascript onDecember 24, 2015

本文实例讲述了jquery.cookie实现的客户端购物车操作。分享给大家供大家参考,具体如下:

//购物车
var Cart = function () {
  this.Count = 0;
  this.Total = 0;
  this.Items = new Array();
};
//购物车集合对象
var CartItem = function () {
  this.Id = 0;
  this.Name = "";
  this.Count = 0;
  this.Price = 0;
};
 
//购物车操作
var CartHelper = function () {
  this.cookieName = "yxhCart";
  this.Clear = function () {
    var cart = new Cart();
    this.Save(cart);
    return cart;
  };
  //向购物车添加
  this.Add = function (id, name, count, price) {
    var cart = this.Read();
    var index = this.Find(id);
    //如果ID已存在,覆盖数量
    if (index > -1) {
      cart.Total -= (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
      cart.Items[index].Count = count;
      cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
    } else {
      var item = new CartItem();
      item.Id = id;
      item.Name = name;
      item.Count = count;
      item.Price = price;
      cart.Items.push(item);
      cart.Count++;
      cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
    }
    this.Save(cart);
    return cart;
  };
  //改变数量
  this.Change = function (id, count) {
    var cart = this.Read();
    var index = this.Find(id);
    cart.Items[index].Count = count;
    this.Save(cart);
    return cart;
  };
  //移出购物车
  this.Del = function (id) {
    var cart = this.Read();
    var index = this.Find(id);
    if (index > -1) {
      var item = cart.Items[index];
      cart.Count--;
      cart.Total = cart.Total - (((item.Count * 100) * (item.Price * 100)) / 10000);
      cart.Items.splice(index, 1);
      this.Save(cart);
    }
    return cart;
  };
  //根据ID查找
  this.Find = function (id) {
    var cart = this.Read();
    var index = -1;
    for (var i = 0; i < cart.Items.length; i++) {
      if (cart.Items[i].Id == id) {
        index = i;
      }
    }
    return index;
  };
  //COOKIE操作
  this.Save = function (cart) {
    var source = "";
    for (var i = 0; i < cart.Items.length; i++) {
      if (source != "") { source += "|$|"; }
      source += this.ItemToString(cart.Items[i]);
    }
    $.cookie(this.cookieName, source);
  };
  this.Read = function () {
    //读取COOKIE中的集合
    var source = $.cookie(this.cookieName);
    var cart = new Cart();
    if (source == null || source == "") {
      return cart;
    }
    var arr = source.split("|$|");
    cart.Count = arr.length;
    for (var i = 0; i < arr.length; i++) {
      var item = this.ItemToObject(arr[i]);
      cart.Items.push(item);
      cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);
    }
    return cart;
  };
  this.ItemToString = function (item) {
    return item.Id + "||" + escape(item.Name) + "||" + item.Count + "||" + item.Price;
  };
  this.ItemToObject = function (str) {
    var arr = str.split('||');
    var item = new CartItem();
    item.Id = arr[0];
    item.Name = unescape(arr[1]);
    item.Count = arr[2];
    item.Price = arr[3];
    return item;
  };
};

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
document.designMode的功能与使用方法介绍
Nov 22 Javascript
jQuery 使用个人心得
Feb 26 Javascript
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
用js编写的简单的计算器代码程序
Aug 04 Javascript
详解AngularJs中$resource和restfu服务端数据交互
Sep 21 Javascript
JS实现数组按升序及降序排列的方法
Apr 26 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
javascript少儿编程关于返回值的函数内容
May 27 Javascript
layui 给数据表格加序号的方法
Aug 20 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
JS原生瀑布流效果实现
Apr 26 Javascript
js加减乘除精确运算方法实例代码
Jan 17 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 #Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 #Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 #Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 #Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
Dec 24 #Javascript
jquery遍历函数siblings()用法实例
Dec 24 #Javascript
jQuery中的siblings用法实例分析
Dec 24 #Javascript
You might like
php中的数组操作函数整理
2008/08/18 PHP
php实现jQuery扩展函数
2009/10/30 PHP
PHP实现懒加载的方法
2015/03/07 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
使用Python函数进行模块化的实现
2019/11/15 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
采购员的工作职责
2013/12/26 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
分公司经理任命书
2014/06/05 职场文书
高考学习决心书
2015/02/04 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
python库sklearn常用操作
2021/08/23 Python