說明
使用js腳本實現商品的添加、修改、刪除、價格計算。
示例代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript實現購物車功能</title>
<style type="text/css">
.num {
width: 30px;
}
</style>
<!--入jquery-->
<script src="script/jquery-1.12.4.js"></script>
<script>
//1.實現全選的效果
function checkAll() {
let eles = document.getElementsByName("product");//獲取的是對象集合
//console.log(eles);//調試代碼
for (let i = 0; i < eles.length; i++) {
eles[i].checked = document.getElementById("checkall").checked;
}
}
//2.實現選擇商品改變全選框的效果
function checkProduct() {
let ckall = document.getElementById("checkall");//全選框
let eles = document.getElementsByName("product");//獲取商品選框對象集合
let size = eles.length;//商品數目
let total = 0;//選中的商品數目
//遍歷集合,判斷商品是否都被選中
for (let i = 0; i < size; i++) {
if (eles[i].checked == false) {
ckall.checked = false;
break;//中斷循環
} else {
total += 1;
}
}
//判斷是否已經遍歷完成
if (total == size) {
ckall.checked = true;
}
}
//jquery開發環境
$(function () {
//alert("hello jquey!");
//3.實現增加商品數量
$("#mycart").find(".add").click(function () {
let $_pre = $(this).prev();
//console.log($_pre);
let num = parseInt($_pre.val());
//alert(num);
$_pre.val(num + 1);//數量+1
//改變小計金額
let price=$_pre.parent().prev().text();//讀取價格
$_pre.parent().next().text(parseInt(price)*(num+1));
totalPrice();
})
//4.減少商品數量
$("#mycart").find(".sub").click(function () {
let $_next = $(this).next();
let num = parseInt($_next.val());
if (num < 2) {
let result = confirm("確定刪除該商品?");
if (result == true) {
$_next.parent().parent().remove();//刪除商品
totalPrice();
}
} else {
$_next.val(num - 1);//數量-1
//改變小計金額
let price=$_next.parent().prev().text();//讀取價格
$_next.parent().next().text(parseInt(price)*(num-1));
totalPrice();
}
})
//5.增加商品效果
$("#addProduct").click(function () {
let $_newRow =$("#mycart").find("tr").eq(1).clone(true);
$("#mycart").find("tr").eq(1).after($_newRow);
totalPrice();
})
//6.總計價格
function totalPrice() {
var sum=0;
$(".total").each(function (i,e) {
sum+=parseInt($(e).text());
})
$("#sum").text(sum);
}
//執行計算總價
totalPrice();
})
</script>
</head>
<body>
<button id="addProduct">增加商品</button>
<hr>
<table id="mycart" border="1px">
<tr>
<th>全選<input type="checkbox" id="checkall" onclick="checkAll()"></th>
<th>品名</th>
<th>價格</th>
<th>數量</th>
<th>小計</th>
</tr>
<tr>
<td><input type="checkbox" name="product" onclick="checkProduct()"></td>
<td>衣服</td>
<td>800</td>
<td>
<button class="sub">-</button>
<input type="text" name="num" class="num" value="1">
<button class="add">+</button>
</td>
<td class="total">800</td>
</tr>
<tr>
<td><input type="checkbox" name="product" onclick="checkProduct()"></td>
<td>鞋子</td>
<td>500</td>
<td>
<button class="sub">-</button>
<input type="text" name="num" class="num" value="1">
<button class="add">+</button>
</td>
<td class="total">500</td>
</tr>
<tr>
<td colspan="3">總計</td>
<td colspan="2" id="sum">888</td>
</tr>
</table>
</body>
</html>
