jquery-防多店铺购物车结算全选,单选,及删除,价格计算
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>购物车结算</title>
<style>
*{padding::0; margin:0; font-family:"微软雅黑"}
.one-shop,.all-total{padding:20px; width:400px; margin:auto}
.one-goods{height:35px; line-height:35px}
.goods-msg,.goods-price{float:left; padding:0 10px 0 0}
.goods-check{width:15px; height:15px}
.am-num-text{width:50px; text-align:center}
.shop-total,.all-total{height:50px; line-height:50px}
.all-del{
width: 400px;
display: flex;
margin: auto;
}
#AllDel{
display: inline-block;
background: #FF0000;
color: #FFFFFF;
width: 60px;
height: 30px;
line-height: 30px;
text-align: center;
}
</style>
</head>
<body>
<!-- 一个店铺 -->
<div class="one-shop">
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg ">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
</div>
</div>
<!-- 店铺合计 -->
<div class="shop-total">
<input type="checkbox" class="goods-check ShopCheck">店铺全选
本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
</div>
</div>
<!-- 一个店铺 -->
<div class="one-shop">
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg ">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
</div>
</div>
<!-- 店铺合计 -->
<div class="shop-total">
<input type="checkbox" class="goods-check ShopCheck">店铺全选
本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
</div>
</div>
<!-- 一个店铺 -->
<div class="one-shop">
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">20.00</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">9.90</span>
</div>
</div>
<!-- 一个商品 -->
<div class="one-goods">
<div class="goods-msg ">
<input type="checkbox" class="goods-check GoodsCheck">
<button type="button" class="minus">-</button>
<input type="text" class="am-num-text" value="1"/>
<button type="button" class="plus">+</button>
</div>
<div class="goods-price">
单价:¥<span class="shop-total-amount GoodsPrice">10.00</span>
</div>
</div>
<!-- 店铺合计 -->
<div class="shop-total">
<input type="checkbox" class="goods-check ShopCheck">店铺全选
本店合计:¥<span class="shop-total-amount ShopTotal">0</span>
</div>
</div>
<!-- 总计 -->
<div class="all-total">
<input type="checkbox" class="goods-check" id="AllCheck">全选
总价合计:¥<span class="shop-total-amount" id="AllTotal">0</span>
</div>
<!--删除-->
<div class="all-del">
<a id="AllDel">删除</a>
</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(); //执行店铺全选的操作
});
//点击删除
$('#AllDel').click(function(){
$(".GoodsCheck:checked").each(function() { // 遍历选中的商品checkbox
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); //店铺全选按钮不被选中
$(this).closest(".one-shop").remove();
TotalPrice();
} else { //如果选中的商品不等于所有商品
var n = $(this).parents('.one-goods').index(); // 获取checkbox所在行的顺序
$(".one-shop").find(".one-goods:eq("+n+")").remove();
TotalPrice();
}
});
}); 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>
jquery-防多店铺购物车结算全选,单选,及删除,价格计算的更多相关文章
- Flutter实战视频-移动电商-60.购物车_全选按钮的交互效果制作
60.购物车_全选按钮的交互效果制作 主要做全选和复选框的这两个功能 provide/cart.dart 业务逻辑写到provide里面 先持久化取出来字符串,把字符串编程list.循环list ca ...
- vue开发购物车,解决全选单选问题
实现全选单选,在vue中无法通过this获取input中的checkbox的checked属性,但是可以通过vue对input的特殊方式v-model来实现对应数据的绑定,同样也可以通过这种方式实现购 ...
- php--jquery操作全选、批量删除、加减行
- Jquery全选单选功能
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx. ...
- jQuery实现Checkbox中项目开发全选全不选的使用
<html> <head> <meta charset="utf-8"> <title>Checkbox的练习</title& ...
- jQuery实现checkbox全选反选及删除等操作
1.list.html 说明:用checkbox数组Check[]存放每一行的ID值 <div id="con"> <table width="100% ...
- Android中购物车的全选、反选、问题和计算价格
此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //- ...
- 关于jquery全选反选 批量删除的一点心得
废话不多说直接上代码: 下面是jsp页面的html代码: <table id="contentTable" class=""> <thead& ...
- 11.8 开课二个月零四天 (Jquery取属性值,做全选,去空格)
1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
随机推荐
- 弹性布局 - flex对齐
flex对齐 flex对齐方式与主轴和交叉轴所在的方向有关,而flex-direction是控制方向的. 主轴 justify-content justify-content对齐方式共有5种对齐方 ...
- HTML/CSS快速入门
Web概念 JavaWeb 使用java语言开发基于互联网的项目 软件架构 C/S架构:Client/Server 客户端/服务器 用户本地有一个客户端程序,在远程有一个服务端程序 如QQ,英雄联盟. ...
- 第十课html5 新增标签及属性 html5学习5
一.常用新增标签 1.header:定义页面的页眉头部 2.nav:定义导航栏 3.footer:定义页面底部,页脚 4.article:定义文章 5.section:定义区域 6.aside:定义侧 ...
- App隐私条款
欢迎光临本app,请您仔细阅读以下条款,如果您对本协议的任何条款表示异议,您可以选择不使用本app:进入本app则意味着您将同意遵守本协议下全部规定,并完全服从于app开发者的统一管理. 第一章 总则 ...
- Android为TV端助力 EventBus出现has no public methods called onEvent的问题
Caused by: de.greenrobot.event.EventBusException: Subscriber class com.hhzt.iptv.lvb_w.socket.MyMsgS ...
- <自动化测试方案_7>第七章、PC端UI自动化测试
第七章.PC端UI自动化测试 UI自动化测试又分为:Web自动化测试,App自动化测试.微信小程序.微信公众号UI层的自动化测试工具非常多,比较主流的是UFT(QTP),Robot Framework ...
- datatable动态列处理,重绘表格(敲黑板,划重点!!!我肝了一天半才彻底弄懂这个东西,TAT)
datatable动态列处理,重绘表格 前言:至于动态列的绘画,我前面博客已经写过了,就是动态列的配置问题,不懂的去我博客看下,今天要写的呢,就是你已经写了一个动态列在datatable,现在你想重新 ...
- vue框架构建项目流程
构建项目流程: 1.全局查询:node -v 2.全局初始化:npm install --global vue-cli 3.模块化工程:vue init webpack myapp--->y,n ...
- mssql server for docker on MacOs
1. install 1.下载镜像 docker pull microsoft/mssql-server-linux 使用该命令就可以把数据库的docker镜像下载下来. 2.创建并运行容器 dock ...
- java网络爬虫基础学习(四)
jsoup的使用 jsoup介绍 jsoup是一款Java的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,css以及类似于Jquery的操作方 ...