jQuery模拟淘宝购物车功能


Posted in Javascript onFebruary 27, 2017

首先我们要实现的内容的需求有如下几点:

1.在购物车页面中,当选中“全选”复选框时,所有商品前的复选框被选中,否则所有商品的复选框取消选中。

2.当所有商品前的复选框选中时,“全选”复选框被选中,否则“全选”复选框取消选中。

3.单击图标-的时候数量减一而且不能让物品小于0并且商品总价与积分随之改变。

4.单击图标+的时候数量增加并且商品总价与积分随之改变。

5.单击删除所选将删除用户选中商品,单击删除则删除该商品即可并达到商品总价与积分随之改变。

下面我们就开始进入代码:

$(function () {
  subtotal();
  addorminus();
  allcheckbox();
  delet();
  deleselect();
 });
 //设置 获取积分和一共金额函数
 function countmoney() {
  var money = 0; //总金额
  var jifen = 0; //总积分
  $(".cart_td_7").each(function () {
  var m = $(this).text();
  money += Number(m);
  var j = $(this).siblings(".cart_td_4").text();
  var number = $(this).siblings(".cart_td_6").children("input").val();
  jifen += Number(j * number);
  });
  $("#total").html(money);
  $("#integral").html(jifen);
 }
 //小计
 function subtotal() {
  var obj = $(".cart_td_7");
  obj.each(function () {       //each遍历每一个clss为.card_td_7的元素
  var num = $(this).siblings(".cart_td_6").children("input").val(); //购物车 选中的当前数量
  var price = $(this).siblings(".cart_td_5").html();   //当前选中物品的price
  var money = num * price;      //小计
  $(this).html(money);
  });
  countmoney();
 }
 //添加或减少数量
 function addorminus() {
  $(".hand").on("click", function () {
  var num;
  if ($(this).attr("alt") == "minus") {
   num = $(this).next().val();
   if (num == 1) {
   $(this).css("display", "none");
   } else {
   $(this).next().val(--num);
   }
  } else {
   num = $(this).prev().val();
   $(this).prev().val(++num);
   if (num == 1) {
   $(this).siblings("[alt==minus]").css("display", "visible");
   } else { } 
  }
  subtotal();
  });
 }
 //全选或者全不选
 function allcheckbox() {
  $("#allCheckBox").live("change", function () {
  if ($(this).attr("checked") == "checked") {
   $("[name=cartCheckBox]").attr("checked", "checked");
  } else {
   $("[name=cartCheckBox]").attr("checked", false);
  }
  });
  $("[name=cartCheckBox]").live("change", function () {
  var bool = true;
  $("[name=cartCheckBox]").each(function () {
   if ($(this).attr("cheked") != "checked") {
   bool = false;
   }
  });
  if (bool) {
   $("#allCheckBox").attr("checked", "checked");
  } else {
   $("#allCheckBox").attr("checked", false);
  }
  });
 }
 //删除
 function delet() {
  $(".cart_td_8>a").live("click", function () {
  $(this).parent().parent().prev().remove();
  $(this).parent().parent().remove();
  subtotal();
  });
 }
 //删除所选 
 function deleselect() {
  $("#deleteAll>img").live("click", function () {
  $("[name=cartCheckBox]").each(function () {
   if ($(this).attr("checked") == "checked") {
   $(this). parent().parent().prev().remove();
   $(this).parent().parent().remove();
   }
  });
  subtotal();
  });
 }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
编写高性能的JavaScript 脚本的加载与执行
Apr 19 Javascript
JavaScript随机排序(随即出牌)
Sep 17 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
初学js插入节点appendChild insertBefore使用方法
Jul 04 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 Javascript
原生js实现轮播图
Feb 27 #Javascript
PHP实现本地图片上传和验证功能
Feb 27 #Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
Feb 27 #Javascript
提高Web性能的前端优化技巧总结
Feb 27 #Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 #Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 #Javascript
JavaScript中数组Array方法详解
Feb 27 #Javascript
You might like
xml+php动态载入与分页
2006/10/09 PHP
php include和require的区别深入解析
2013/06/17 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
什么情况下可以不写PHP的闭合标签“?>”
2014/08/28 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php代码架构的八点注意事项
2016/01/25 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
python交易记录整合交易类详解
2019/07/03 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
如何写python的配置文件
2020/06/07 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
超市总经理岗位职责
2014/02/02 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
安全目标管理责任书
2014/07/25 职场文书
白酒营销策划方案
2014/08/17 职场文书
交通事故起诉书
2015/05/19 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
护士工作心得体会
2016/01/25 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server