纯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 相关文章推荐
JQuery 获得绝对,相对位置的坐标方法
Feb 09 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
Javascript中的getUTCDay()方法使用详解
Jun 10 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
Layui给switch添加响应事件的例子
Sep 03 Javascript
webpack3.0升级4.0的方法步骤
Apr 02 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 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 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python实现八大排序算法
2016/08/13 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
python的变量与赋值详细分析
2017/11/08 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
详解python的argpare和click模块小结
2019/03/31 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
医学生自我鉴定范文
2013/11/08 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
简历的自我评价范文
2014/02/04 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
优秀应届生求职信
2014/06/16 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
css背景和边框标签实例详解
2021/05/21 HTML / CSS