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中的call实现继承
Jan 22 Javascript
html读出文本文件内容
Jan 22 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
Aug 28 Javascript
js一维数组、多维数组和对象的混合使用方法
Apr 03 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
js实现带简单弹性运动的导航条
Feb 22 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 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
PHP伪静态写法附代码
2008/06/20 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
致1500米运动员广播稿
2014/02/07 职场文书
工作会议主持词
2014/03/17 职场文书
指导教师评语
2014/04/26 职场文书
酒店开业策划方案
2014/06/02 职场文书
党校党性分析材料
2014/12/19 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python