纯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实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 Javascript
js切换div css注意的细节
Dec 10 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
javascript使用定时函数实现跳转到某个页面
Dec 25 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
Javascript中String的常用方法实例分析
Jun 13 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
Dec 03 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
Dec 25 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
Jun 24 Javascript
JS Object构造函数之Object.freeze
Apr 28 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语法基础
2016/01/01 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
取选中的radio的值
2010/01/11 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
初识Node.js
2015/03/20 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
Django框架多表查询实例分析
2018/07/04 Python
python图像处理入门(一)
2019/04/04 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
python 读取数据库并绘图的实例
2019/12/03 Python
python 数据类型强制转换的总结
2021/01/25 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
护理专科毕业推荐信
2013/11/10 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
九年级英语教学反思
2016/02/15 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
python爬虫框架feapde的使用简介
2021/04/20 Python
分享几种python 变量合并方法
2022/03/20 Python