纯jquery实现模仿淘宝购物车结算


Posted in Javascript onAugust 20, 2015

这篇文章里,将会提到购物车里的所有功能。包括全选、单选金额改变。在增加数量时金额也会相应改变。

效果图展示:

纯jquery实现模仿淘宝购物车结算

说下大致的思路吧:

1、首先是计算一行的价格。这个功能在上篇博客里有提到,这里就不列举出来了。

2、遍历选中的几行,将每行的数值相加。

3、将值赋给总金额显示出来。当取消勾选或加减数量时,金额会相应改变。

下面是具体的js部分:

<script type="text/javascript">
  $(function(){
    //计算总金额
    function totalMoney(){
      var total_price = 0;
      var total_count = 0;
      $(".d1-input").each(function(){
        if($(this).hasClass('status')) {
          var obj1 = $(this).parent().siblings(".d4").find(".count").val();//获取一行的商品数量
          total_count += parseInt(obj1);
          var obj2= $(this).parent().siblings(".d5").find(".cart-price").text();//获取一行的金额
          total_price += parseInt(obj2);
        }
      });
      $(".item").text(total_count);//将计算出的总金额显示
      $(".total").text(total_price);//将计算出的总数量显示
    }
    //全选
    $(".d-input").toggle( function(){
      $(this).addClass("status");
      $(".sc-mid-list .d1-input").addClass("status");//添加勾选样式
      $(".sc-mid-list").addClass("mouseover");
      totalMoney();
      },
      function(){
      $(this).removeClass("status");
      $(".sc-mid-list .d1-input").removeClass("status");//取消勾选样式
      $(".sc-mid-list").removeClass("mouseover");
      totalMoney();
    });
    // 单选
    $(".d1-input").toggle( function(){
      $(this).addClass("status");//添加勾选样式
      $(this).parents(".sc-mid-list").addClass("mouseover");
      totalMoney();
      },
      function(){
      $(this).removeClass("status");//取消勾选样式
      $(this).parents(".sc-mid-list").removeClass("mouseover");
      totalMoney();
    });
    // 减号样式
    function count(){
      $(".count").each(function(){
        var num = $(this).val();
        if (num == 1) {
          $(this).siblings(".reduce").removeClass("two").addClass("one");
          $(this).siblings(".reduce").attr("disabled","disabled");
        } else {
          $(this).siblings(".reduce").removeClass("one").addClass("two");
        }
      })//根据数量是否为1,改变减号的样式
    }
    // 加
    $(".sc-mid-list .add").click(function(){
      var input = $(this).siblings(".count");
      var obj = $(this).parents(".d4");
      var per = parseFloat(obj.siblings(".d3").find(".per").text());//获取当前一行的单价
      var num = '';
      var price = '';
      input.attr("value", parseInt(input.attr("value")) + 1 );//数量加1
      num = input.attr("value");
      price = num*per;//
      obj.siblings(".d5").find(".cart-price").text(price);
      count();
      totalMoney();
    })
    // 减
    $(".sc-mid-list .reduce").click(function(){
      var input = $(this).siblings(".count");
      var obj = $(this).parents(".d4");
      var per = parseFloat(obj.siblings(".d3").find(".per").text());//获取当前一行的单价
      var num = '';
      var price = '';
      var Val = parseInt(input.attr("value"));
      if(Val <= 1){
        Val = 2;
        }
      input.attr("value", parseInt(Val) - 1 );//数量减1
      num = input.attr("value");
      price = num*per;//
      obj.siblings(".d5").find(".cart-price").text(price);
      count();
    })
  })
</script>

jquery模仿淘宝悬挂购物车物品结算功能-附源码下载

纯jquery实现模仿淘宝购物车结算

查看演示    源码下载

Javascript 相关文章推荐
一种JavaScript的设计模式
Nov 22 Javascript
非常漂亮的JS代码经典广告
Oct 21 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
JavaScript 巧学巧用
May 23 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
vue中使用vue-cli接入融云实现即时通信
Apr 19 Javascript
实例分析javascript中的异步
Jun 02 Javascript
js实现按钮颜色渐变动画效果
Aug 20 #Javascript
jQuery+HTML5加入购物车代码分享
Oct 29 #Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 #Javascript
jQuery超赞的评分插件(8款)
Aug 20 #Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 #Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 #Javascript
js实现文字在按钮上滚动的方法
Aug 20 #Javascript
You might like
php下保存远程图片到本地的办法
2010/08/08 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
深入理解React高阶组件
2017/09/28 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python模块之re正则表达式详解
2017/02/03 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
pandas 将索引值相加的方法
2018/11/15 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
上海方立数码笔试题
2013/10/18 面试题
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
电子信息专业自荐书
2014/02/04 职场文书
进步之星获奖感言
2014/02/22 职场文书
大学生就业策划书范文
2014/04/04 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
工程质量保证书
2015/05/09 职场文书
儿童诗两首教学反思
2016/02/23 职场文书