纯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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
表单验证的完整应用案例探讨
Mar 29 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
vue实现点击隐藏与显示实例分享
Feb 13 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
React forwardRef的使用方法及注意点
Jun 13 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_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
婚庆公司的创业计划书
2014/01/22 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
青春励志演讲稿
2014/04/29 职场文书
求职信范文怎么写
2015/03/19 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
税务会计岗位职责
2015/04/02 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
LeetCode189轮转数组python示例
2022/08/05 Python