1. 程式人生 > >購物車jquery數量加減+總價計算

購物車jquery數量加減+總價計算

mount scala form ati amount checkbox on() cap all

<!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>

購物車jquery數量加減+總價計算