纯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 相关文章推荐
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
Js 导出table内容到Excel的简单实例
Nov 19 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
jQuery实现日期联动效果实例
Jul 26 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
JavaScript展开操作符(Spread operator)详解
Jul 20 Javascript
Vue混入mixins滚动触底的方法
Nov 22 Javascript
flexible.js实现移动端rem适配方案
Apr 07 Javascript
VueJS实现用户管理系统
May 29 Javascript
Javascript柯里化实现原理及作用解析
Oct 22 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
python实现一次创建多级目录的方法
2015/05/15 Python
python处理二进制数据的方法
2015/06/03 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
高中毕业自我鉴定
2013/12/22 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
档案室主任岗位职责
2014/02/12 职场文书
房屋买卖协议书
2014/04/10 职场文书
爱心活动计划书
2014/04/26 职场文书
工程承诺书怎么写
2014/05/24 职场文书
运动会拉拉队口号
2014/06/09 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
商铺租房协议书范本
2014/12/04 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫