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对JSON进行模式匹配 (Part 2 - 实现)
Jul 17 Javascript
JS弹出对话框返回值代码(asp.net后台)
Dec 28 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 Javascript
Javascript 基础---Ajax入门必看
Jul 06 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
angularjs实现多张图片上传并预览功能
Feb 24 Javascript
js匿名函数使用&传参(实例)
Sep 08 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
js实现星星打分效果
Jul 05 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
中国收音机工业发展史
2021/03/02 无线电
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
用javascript实现自定义标签
2007/05/08 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
Python实现的最近最少使用算法
2015/07/10 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python3解释器知识点总结
2019/02/19 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python实现飞机大战游戏
2020/10/26 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
python与js主要区别点总结
2020/09/13 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
单位在职证明书
2014/09/11 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
学历证明范文
2015/06/16 职场文书
2016母亲节感恩话语
2015/12/09 职场文书