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 相关文章推荐
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
js中对象的声明方式以及数组的一些用法示例
Dec 11 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
jQuery+ajax读取并解析XML文件的方法
Sep 09 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
JS作用域链详解
Jun 26 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 Javascript
vue 文件目录结构详解
Nov 24 Javascript
node.js中npm包管理工具用法分析
Feb 14 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
php array的学习笔记
2012/05/10 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
php compact 通过变量创建数组
2016/11/15 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
实例介绍Python中整型
2019/02/11 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
安全生产标语
2014/06/06 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2015年副班长工作总结
2015/05/15 职场文书
2016年寒假家长评语
2015/10/10 职场文书
关于做家务的心得体会
2016/01/23 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL