代码拉取完成,页面将自动刷新
window.onload = function () {
// 获取所需的 DOM 元素
const btn = document.querySelector(".s_ck_all");
const buttons = document.querySelectorAll(".s_ck");
const del = document.querySelector(".del-all");
var totalPrice = document.getElementById("totalPrice");
var totalCount = document.getElementById("totalCount");
var carBody = document.getElementById("carBody");
var tr = carBody.getElementsByTagName("tr");
const clear = document.querySelector(".clear");
// 第一步 设置全选
btn.onclick = function () {
for (let button of buttons) {
button.checked = btn.checked;
}
getTotal();
};
// 第二步 设置选中删除
del.onclick = function () {
const selectedItems = Array.from(buttons).filter((button) => button.checked);
if (selectedItems.length === 0) {
alert("请选择要删除的商品");
} else {
selectedItems.forEach((button) => {
button.closest("tr").remove();
});
getTotal();
}
};
// 数量加减、删除
for (let item of tr) {
item.addEventListener("click", (e) => {
const target = e.target;
if (target.classList.contains("add")) {
increaseQuantity(target);
} else if (target.classList.contains("reduce")) {
decreaseQuantity(target);
} else if (target.classList.contains("del")) {
deleteItem(target);
}
getTotal();
});
}
// 增加数量
function increaseQuantity(element) {
const input = element.previousElementSibling;
input.value = parseInt(input.value) + 1;
}
// 减少数量
function decreaseQuantity(element) {
const input = element.nextElementSibling;
const newValue = parseInt(input.value) - 1;
input.value = newValue < 1 ? 1 : newValue;
}
// 删除商品
function deleteItem(element) {
element.closest("tr").remove();
}
// 合计、已选商品件数
function getTotal() {
let price = 0;
let count = 0;
for (let item of tr) {
const checkbox = item.querySelector("input[type='checkbox']");
if (checkbox.checked) {
const priceCell = item.querySelector("td:nth-child(3)"); //获取单价
const quantityInput = item.querySelector("input[type='text']");
const totalCell = item.querySelector("td:nth-child(5)");
const unitPrice = parseFloat(priceCell.innerText);
const quantity = parseInt(quantityInput.value);
const itemTotal = unitPrice * quantity;
totalCell.innerText = itemTotal.toFixed(2); //更新商品行的总计和统计变量
price += itemTotal;
count += quantity;
}
}
totalPrice.innerText = price.toFixed(2);
totalCount.innerText = count;
}
// 清空购物车
clear.onclick = function () {
carBody.innerHTML = "";
getTotal();
};
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。