jquery购物车结算功能实现方法


Posted in Javascript onOctober 29, 2020

先看看购物车结算效果:

jquery购物车结算功能实现方法

具体代码:

<!DOCTYPE html> 
<html lang="en"> 
 
<head> 
 <meta charset="utf-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <title>购物车结算</title> 
 <meta name="description" content=""> 
 <meta name="keywords" content=""> 
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 
 <meta name="format-detection" content="telephone=no" /> 
 <meta name="renderer" content="webkit"> 
 <!--<![endif]--> 
 <meta name="apple-mobile-web-app-capable" content="yes"> 
 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
 <style> 
 .shop-total, 
 .all-total { 
 height: 50px; 
 line-height: 50px; 
 font-weight: bold; 
 color: #f00; 
 float: left; 
 } 
 
 .one-shop, 
 .all-total, 
 .shop-total { 
 width: 400px; 
 } 
 
 p { 
 margin: 0; 
 } 
 
 .goods-check { 
 width: 25px; 
 height: 25px; 
 margin-top: 5px; 
 } 
 
 .goods-msg, 
 p, 
 label { 
 float: left; 
 } 
 </style> 
</head> 
 
<body> 
 <!-- 一个店铺 --> 
 <div class="one-shop"> 
 <!-- 一个商品 --> 
 <div class="one-goods"> 
 <div class="goods-msg"> 
 <label for=""> 
  <input type="checkbox" class="goods-check GoodsCheck"> 
 </label> 
 <button type="button" class="minus">-</button> 
 <input type="text" class="am-num-text" value="1" /> 
 <button type="button" class="plus">+</button> 
 </div> 
 <p>商品单价:¥<span class="shop-total-amount GoodsPrice">20.00</span></p> 
 </div> 
 <!-- 一个商品 --> 
 <div class="one-goods"> 
 <div class="goods-msg"> 
 <label for=""> 
  <input type="checkbox" class="goods-check GoodsCheck"> 
 </label> 
 <button type="button" class="minus">-</button> 
 <input type="text" class="am-num-text" value="1" /> 
 <button type="button" class="plus">+</button> 
 </div> 
 <p>商品单价:¥<span class="shop-total-amount GoodsPrice">9.90</span></p> 
 </div> 
 <!-- 一个商品 --> 
 <div class="one-goods"> 
 <div class="goods-msg "> 
 <label for=""> 
  <input type="checkbox" class="goods-check GoodsCheck"> 
 </label> 
 <button type="button" class="minus">-</button> 
 <input type="text" class="am-num-text" value="1" /> 
 <button type="button" class="plus">+</button> 
 </div> 
 <p>商品单价:¥<span class="shop-total-amount GoodsPrice">10.00</span></p> 
 </div> 
 <!-- 店铺合计 --> 
 <div class="shop-total"> 
 <label for=""> 
 <input type="checkbox" class="goods-check ShopCheck">店铺全选 </label> 
 <p>本店合计:¥<span class="shop-total-amount ShopTotal">0</span></p> 
 </div> 
 </div> 
 <!-- 一个店铺 --> 
 <div class="one-shop"> 
 <!-- 一个商品 --> 
 <div class="one-goods"> 
 <div class="goods-msg"> 
 <label for=""> 
  <input type="checkbox" class="goods-check GoodsCheck"> 
 </label> 
 <button type="button" class="minus">-</button> 
 <input type="text" class="am-num-text" value="1" /> 
 <button type="button" class="plus">+</button> 
 </div> 
 <p>商品单价:¥<span class="shop-total-amount GoodsPrice">30.00</span></p> 
 </div> 
 <!-- 一个商品 --> 
 <div class="one-goods"> 
 <div class="goods-msg"> 
 <label for=""> 
  <input type="checkbox" class="goods-check GoodsCheck"> 
 </label> 
 <button type="button" class="minus">-</button> 
 <input type="text" class="am-num-text" value="1" /> 
 <button type="button" class="plus">+</button> 
 </div> 
 <p>商品单价:¥<span class="shop-total-amount GoodsPrice">20.00</span></p> 
 </div> 
 <!-- 店铺合计 --> 
 <div class="shop-total"> 
 <label for=""> 
 <input type="checkbox" class="goods-check ShopCheck">店铺全选 </label> 
 <p>本店合计:¥<span class="shop-total-amount ShopTotal">0</span></p> 
 </div> 
 </div> 
 <!-- 总计 --> 
 <div class="all-total"> 
 <label for=""> 
 <input type="checkbox" class="goods-check" id="AllCheck">全选 </label> 
 <p>总价合计:¥<span class="shop-total-amount" id="AllTotal">0</span></p> 
 </div> 
 <script src="http://code.jquery.com/jquery-2.2.0.min.js"></script> 
 <script> 
 // 数量减 
 $(".minus").click(function() { 
 var t = $(this).parent().find('.am-num-text'); 
 t.val(parseInt(t.val()) - 1); 
 if (t.val() <= 1) { 
 t.val(1); 
 } 
 TotalPrice(); 
 }); 
 // 数量加 
 $(".plus").click(function() { 
 var t = $(this).parent().find('.am-num-text'); 
 t.val(parseInt(t.val()) + 1); 
 if (t.val() <= 1) { 
 t.val(1); 
 } 
 TotalPrice(); 
 }); 
 // 点击商品按钮 
 $(".GoodsCheck").click(function() { 
 var goods = $(this).closest(".one-shop").find(".GoodsCheck"); //获取本店铺的所有商品 
 var goodsC = $(this).closest(".one-shop").find(".GoodsCheck:checked"); //获取本店铺所有被选中的商品 
 var Shops = $(this).closest(".one-shop").find(".ShopCheck"); //获取本店铺的全选按钮 
 if (goods.length == goodsC.length) { //如果选中的商品等于所有商品 
 Shops.prop('checked', true); //店铺全选按钮被选中 
 if ($(".ShopCheck").length == $(".ShopCheck:checked").length) { //如果店铺被选中的数量等于所有店铺的数量 
 $("#AllCheck").prop('checked', true); //全选按钮被选中 
 TotalPrice(); 
 } else { 
 $("#AllCheck").prop('checked', false); //else全选按钮不被选中 
 TotalPrice(); 
 } 
 } else { //如果选中的商品不等于所有商品 
 Shops.prop('checked', false); //店铺全选按钮不被选中 
 $("#AllCheck").prop('checked', false); //全选按钮也不被选中 
 // 计算 
 TotalPrice(); 
 // 计算 
 } 
 }); 
 // 点击店铺按钮 
 $(".ShopCheck").change(function() { 
 if ($(this).prop("checked") == true) { //如果店铺按钮被选中 
 $(this).parents(".one-shop").find(".goods-check").prop('checked', true); //店铺内的所有商品按钮也被选中 
 if ($(".ShopCheck").length == $(".ShopCheck:checked").length) { //如果店铺被选中的数量等于所有店铺的数量 
 $("#AllCheck").prop('checked', true); //全选按钮被选中 
 TotalPrice(); 
 } else { 
 $("#AllCheck").prop('checked', false); //else全选按钮不被选中 
 TotalPrice(); 
 } 
 } else { //如果店铺按钮不被选中 
 $(this).parents(".one-shop").find(".goods-check").prop('checked', false); //店铺内的所有商品也不被全选 
 $("#AllCheck").prop('checked', false); //全选按钮也不被选中 
 TotalPrice(); 
 } 
 }); 
 // 点击全选按钮 
 $("#AllCheck").click(function() { 
 if ($(this).prop("checked") == true) { //如果全选按钮被选中 
 $(".goods-check").prop('checked', true); //所有按钮都被选中 
 TotalPrice(); 
 } else { 
 $(".goods-check").prop('checked', false); //else所有按钮不全选 
 TotalPrice(); 
 } 
 $(".ShopCheck").change(); //执行店铺全选的操作 
 }); 
 
 function TotalPrice() { 
 var allprice = 0; //总价 
 $(".one-shop").each(function() { //循环每个店铺 
 var oprice = 0; //店铺总价 
 $(this).find(".GoodsCheck").each(function() { //循环店铺里面的商品 
 if ($(this).is(":checked")) { //如果该商品被选中 
  var num = parseInt($(this).parents(".one-goods").find(".am-num-text").val()); //得到商品的数量 
  var price = parseFloat($(this).parents(".one-goods").find(".GoodsPrice").text()); //得到商品的单价 
  var total = price * num; //计算单个商品的总价 
  oprice += total; //计算该店铺的总价 
 } 
 $(this).closest(".one-shop").find(".ShopTotal").text(oprice.toFixed(2)); //显示被选中商品的店铺总价 
 }); 
 var oneprice = parseFloat($(this).find(".ShopTotal").text()); //得到每个店铺的总价 
 allprice += oneprice; //计算所有店铺的总价 
 }); 
 $("#AllTotal").text(allprice.toFixed(2)); //输出全部总价 
 } 
 </script> 
</body> 
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
js仿百度有啊通栏展示效果实现代码
May 28 Javascript
intro.js 页面引导简单用法 分享
Aug 06 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
AngularJS基础学习笔记之指令
May 10 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
Vue 组件封装 并使用 NPM 发布的教程
Sep 30 Javascript
深入了解js原型模式
May 30 Javascript
JavaScript微信定位功能实现方法
Nov 29 #Javascript
jQuery中的select操作详解
Nov 29 #Javascript
微信小程序加载更多 点击查看更多
Nov 29 #Javascript
AngularJs表单验证实例代码解析
Nov 29 #Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
Nov 29 #Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 #Javascript
JavaScript获取服务器端时间的方法
Nov 29 #Javascript
You might like
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
js实现表格字段排序
2014/02/19 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Python验证码识别处理实例
2015/12/28 Python
常见python正则用法的简单实例
2016/06/21 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python tcp传输代码实例解析
2020/03/18 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
初中班长竞选稿
2015/11/20 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers