写一个JS文件  把相应的方法写在JS文件内 为了方便以后的调用

具体代码为

  1. var Cart = function () {
  2. this.Count = 0;
  3. this.Total = 0;
  4. this.Items = new Array();
  5. };
  6. //购物车集合对象
  7. var CartItem = function () {
  8. this.Id = 0;
  9. this.Name = "";
  10. this.Count = 0;
  11. this.Price = 0;
  12. };
  13.  
  14. //购物车操作
  15. var CartHelper = function () {
  16. this.cookieName = "wangjian";
  17. this.Clear = function () {
  18. var cart = new Cart();
  19. this.Save(cart);
  20. return cart;
  21. };
  22.  
  23. //向购物车添加
  24. this.Add = function (id, name, count, price) {
  25. var cart = this.Read();
  26. var index = this.Find(id);
  27.  
  28. if(count==0){
  29. this.Del(id);
  30.  
  31. }else{
  32. //如果ID已存在,覆盖数量
  33. if (index > -1) {
  34. cart.Total -= (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
  35. cart.Items[index].Count = count;
  36. cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
  37.  
  38. } else {
  39. var item = new CartItem();
  40. item.Id = id;
  41. item.Name = name;
  42. item.Count = count;
  43. item.Price = price;
  44. cart.Items.push(item);
  45. cart.Count++;
  46. cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);
  47. // console.log(cart);
  48. // cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
  49. }
  50. cart.Total=Math.round(cart.Total * 100) / 100;
  51. this.Save(cart);
  52. }
  53.  
  54. return cart;
  55. };
  56. //改变数量
  57. this.Change = function (id, count) {
  58. var cart = this.Read();
  59. var index = this.Find(id);
  60. cart.Items[index].Count = count;
  61. this.Save(cart);
  62. return cart;
  63. };
  64. //移出购物车
  65. this.Del = function (id) {
  66. var cart = this.Read();
  67. var index = this.Find(id);
  68. if (index > -1) {
  69. var item = cart.Items[index];
  70. cart.Count--;
  71. cart.Total = cart.Total - (((item.Count * 100) * (item.Price * 100)) / 10000);
  72. cart.Items.splice(index, 1);
  73. this.Save(cart);
  74. }
  75.  
  76. return cart;
  77.  
  78. };
  79. //根据ID查找
  80. this.Find = function (id) {
  81. var cart = this.Read();
  82. var index = -1;
  83. for (var i = 0; i < cart.Items.length; i++) {
  84. if (cart.Items[i].Id == id) {
  85. index = i;
  86. }
  87. }
  88. return index;
  89. };
  90. //COOKIE操作
  91. this.Save = function (cart) {
  92. var source = "";
  93. for (var i = 0; i < cart.Items.length; i++) {
  94. if (source != "") { source += "|$|"; }
  95. source += this.ItemToString(cart.Items[i]);
  96. }
  97. $.cookie(this.cookieName, source);
  98. };
  99. this.Read = function () {
  100. //读取COOKIE中的集合
  101. var source = $.cookie(this.cookieName);
  102. var cart = new Cart();
  103. if (source == null || source == "") {
  104. return cart;
  105. }
  106. var arr = source.split("|$|");
  107. cart.Count = arr.length;
  108. for (var i = 0; i < arr.length; i++) {
  109. var item = this.ItemToObject(arr[i]);
  110. cart.Items.push(item);
  111. cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);
  112. }
  113. return cart;
  114. };
  115. this.ItemToString = function (item) {
  116. return item.Id + "||" + escape(item.Name) + "||" + item.Count + "||" + item.Price;
  117. };
  118. this.ItemToObject = function (str) {
  119. var arr = str.split('||');
  120. var item = new CartItem();
  121. item.Id = arr[0];
  122. item.Name = unescape(arr[1]);
  123. item.Count = arr[2];
  124. item.Price = arr[3];
  125. return item;
  126. };
  127. };

 导入JS文件

Script内方法:

  1. //定义点击事件
  2. function get(){
  3. //购物车
  4. //调用 实例化对象
  5. var xc=new CartHelper();
  6.  
  7. //传递参数id,名称,数量,价格 数量为0的话直接删除
  8. var id = name;
  9. var c_name = $(".comm_title").html();
  10. var num = $("#number").val();
  11. var price = $(".comm_price").html();
  12. //对象传参
  13. xc.Add(id,c_name,num,price);
  14.  
  15. var order_list= $.cookie('wangjian')
  16.  
  17. //read方法获cookie内存储的值
  18. console.log(xc.Read())
  19. }

  

Cookie 版购物车的更多相关文章

  1. [转].net cookie版购物车

    本文转自:http://www.sulong.cc/article/program/aspx/110613114249.html #region 添加到购物车AddShoppingCar /// &l ...

  2. 购物车非cookie版

    2015.11.26购物车,非cookie版 [点击来,你发现被骗了(笑哭,笑哭,笑哭,源代码的话,留下邮箱吧,是在不好找这一时半会儿的.)] Jsp通过反射机制获取bean中的标签,但其实,可以没有 ...

  3. 【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能

    Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据. 设置Cookie //设置cookie Cookie cookie = new Cookie("TOM&q ...

  4. 工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能

    登入界面<% Cookie[] cks =request.getCookies(); String str=null; for(Cookie ck:cks) { if(ck.getName(). ...

  5. 基于Cookie的购物车

    var Cookies = {}; Cookies.set = function (name, value) { var argv = arguments; var argc = arguments. ...

  6. jQuery基于json与cookie实现购物车的方法

    /** * 添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数 */ function AddToShoppingCar(id, num, type) { var _num = ...

  7. Cookie实现购物车功能

    这里的购物车暂时存放书,后期把参数改成Object,把方法抽取成接口,只要实现了接口的Object类都可以放进购物项,这样就实现了购物任何物品 使用购物项因为一个购物项可以包含某种商品的数量,总价等, ...

  8. javaweb学习——session和Cookie实现购物车功能

    1.创建Book类,实现对图书信息的封装. package cn.it.sessionDemo.example1; import java.io.Serializable; /** * 该类实现对图书 ...

  9. 【Tomcat】JSP使用Session、Cookie实现购物车

    购物界面shop.jsp 初始页面 添加商品后,在session中设置属性,重定向回到shop.jsp,然后根据session的内容显示结果 Cookie设置setMaxAge可以延长session的 ...

随机推荐

  1. 用PMML实现机器学习模型的跨平台上线

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  2. Kafka监控系统Kafka Eagle剖析

    1.概述 最近有同学留言反馈了使用Kafka监控工具Kafka Eagle的一些问题,这里笔者特意整理了这些问题.并且希望通过这篇博客来解答这些同学的在使用Kafka Eagle的时候遇到的一些困惑, ...

  3. SpringCloud Config客户端

     SpringCloud Config服务端 1.导入依赖 <dependency> <groupId>org.springframework.cloud</groupI ...

  4. LeetCode专题-Python实现之第20题:Valid Parentheses

    导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...

  5. JDK源码分析(9)之 WeakHashMap 相关

    平时我们使用最多的数据结构肯定是 HashMap,但是在使用的时候我们必须知道每个键值对的生命周期,并且手动清除它:但是如果我们不是很清楚它的生命周期,这时候就比较麻烦:通常有这样几种处理方式: 由一 ...

  6. 说说不知道的Golang中参数传递

    本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为.在golang中存在着m ...

  7. MySQL 索引及查询优化总结

    本文由云+社区发表 文章<MySQL查询分析>讲述了使用MySQL慢查询和explain命令来定位mysql性能瓶颈的方法,定位出性能瓶颈的sql语句后,则需要对低效的sql语句进行优化. ...

  8. 基于.Net进行前端开发的技术栈发展路线(三)

    前言 上一篇<我的技能树二>文章分享了我的技能中的前端技能和Java技能,今天继续跟大家分享的就是后端技能了. 我的技能树 我当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗 ...

  9. Spring框架浅析

    一.一个简单的示例 1.引入依赖和配置 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pro ...

  10. JavaScript 循环语句

    while     while循环由两个代码块组成,分别是条件语句和循环体. while ( [条件] ) { [循环体] } while循环类似于if语句,不同的是while循环将不断地执行循环体直 ...