批改状态:合格
老师批语:思路 在写代码之前就要想好的
$("#check-all").click((ev) =>$("[name='itemId']").each((index, btn) => (btn.checked = ev.target.checked)));// 每个复选框的change事件回调$("[name='itemId']").each(function (index, btn) {$(btn).change(function () {let count = 0;$("[name='itemId']").each((index, btn) => btn.checked && count++);// 如果数量等于全部按钮的数量,就全选按钮勾选,反之不选$("[name='itemId']").length == count? ($("#check-all")[0].checked = true): ($("#check-all")[0].checked = false);});});
// 获取每个商品的数量const numArr = Array.from($('input[type="number"]'));// 每个商品的单价const unitPriceArr = Array.from($("tbody>tr>td:nth-of-type(5)"));// 获取每个商品的金额(计算值,当前为空)const amountArr = Array.from($("tbody>tr>td:last-of-type"));numArr.forEach((item) => $(item).change(() => autoCalculate()));window.addEventListener("load", autoCalculate, false);function autoCalculate() {// 1. 计算商品总数$("#total-num")[0].innerHTML = numArr.reduce((pre, next) => (pre += parseInt(next.value)),0);// 2. 计算没见商品的金额amountArr.forEach((item, index) =>(item.innerHTML = unitPriceArr[index].innerHTML * numArr[index].value));//3. 计算总金额$("#total-amount")[0].innerHTML = amountArr.reduce((pre, next) => (pre += parseInt(next.innerHTML)),0);}
btn.checked? ($("#total-num")[0].innerHTML =parseInt($("#total-num")[0].innerHTML) +parseInt($('input[type="number"]')[index].value)): ($("#total-num")[0].innerHTML =$("#total-num")[0].innerHTML -$('input[type="number"]')[index].value);});
全选自动计算
// 添加全选按钮事件$("#check-all").click(function (ev) {$("[name='itemId']").each((index, btn) => {btn.checked = ev.target.checked;btn.checked ? autoCalculate() : ($("#total-num")[0].innerHTML = 0);});});

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号