纯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 相关文章推荐
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
May 27 Javascript
从阶乘函数对比Javascript和C#的异同
May 31 Javascript
js 通用订单代码
Dec 23 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
php xml文件操作代码(一)
2009/03/20 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
javascript中的作用域scope介绍
2010/12/28 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jquery选择器简述
2015/08/31 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
用python与文件进行交互的方法
2018/03/01 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python批量修改图片大小的方法
2018/07/24 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
内勤主管岗位职责
2014/04/03 职场文书
战略合作协议书范本
2014/04/18 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
改进工作作风心得体会
2016/01/23 职场文书