纯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的bankInput银行卡账号格式化
Aug 22 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
借助node实战JSONP跨域实例
Mar 30 Javascript
vue获取input输入值的问题解决办法
Oct 17 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
vue.js 实现图片本地预览 裁剪 压缩 上传功能
Mar 01 Javascript
微信小程序实现带缩略图轮播效果
Nov 04 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 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
帅气的琦玉老师
2020/03/02 日漫
php下通过POST还是GET来传值
2008/06/05 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
Python定义函数实现累计求和操作
2020/05/03 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
"序列点" 是什么
2016/07/29 面试题
装修协议书范本
2014/04/21 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript