纯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 不间断的图片滚动并可点击
Jan 15 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
对于Form表单reset方法的新认识
Mar 05 Javascript
Jquery中CSS选择器用法分析
Feb 10 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
js命名空间写法示例
Dec 18 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
JavaScript常用事件介绍
Jan 21 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
Python中返回字典键的值的values()方法使用
2015/05/22 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
python实现烟花小程序
2019/01/30 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
公务员个人自我评价分享
2013/11/06 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
求职信的正确写法
2014/07/10 职场文书
写字楼租赁意向书
2014/07/30 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
教师节班会开场白
2015/06/01 职场文书
小学信息技术教学反思
2016/02/16 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang