批改状态:合格
老师批语:
import carts from "./carts.js"const items = document.querySelectorAll('.carts-body .item')const total = document.querySelector('.total')const totalMoney = document.querySelector('.total-money')items.forEach((item, index)=> {item.querySelector('.id').textContent = carts.data[index].iditem.querySelector('.name').textContent = carts.data[index].nameitem.querySelector('.unit').textContent = carts.data[index].unititem.querySelector('.price').textContent = carts.data[index].priceitem.querySelector('.num').value = carts.data[index].numitem.querySelector('.money').textContent = carts.data[index].money})total.textContent = carts.totaltotalMoney.textContent = carts.totalMoneyconst prices = document.querySelectorAll('.carts-body .price')const nums = document.querySelectorAll('.carts-body .num')const monies = document.querySelectorAll('.carts-body .money')const checks = document.querySelectorAll('.carts-body .check')// forEach(在遍历的数组,数组的索引,数组)nums.forEach((num, index, arr)=>{num.onchange = ()=>{if(!checks[index].checked) return falsemonies[index].textContent = prices[index].textContent * num.valueconst numArr = [...arr].map((item)=> parseInt(item.value))total.textContent = numArr.reduce((pre, cur)=>pre + cur)const moneyArr = [...monies].map((item)=> parseFloat(item.textContent))totalMoney.textContent = moneyArr.reduce((pre, cur)=>pre + cur)}})const checkAll = document.querySelector('.check-all')let totalTmp = total.textContentlet totalMoneyTmp = totalMoney.textContentcheckAll.onchange = ()=>{checks.forEach((check)=>check.checked = checkAll.checked)if(checkAll.checked == false){let itemStatus = [...checks].every(item=>item.checked == false)if(itemStatus == true){total.textContent = 0totalMoney.textContent = 0}}else{total.textContent = totalTmptotalMoney.textContent = totalMoneyTmp}}checks.forEach((check, index)=>{check.onchange = () =>{checkAll.checked = [...checks].every(item=>item.checked)if(check.checked == false){total.textContent -= nums[index].valuetotalMoney.textContent -= monies[index].textContent}else{total.textContent = total.textContent * 1 + nums[index].value * 1totalMoney.textContent = totalMoney.textContent * 1 + monies[index].textContent * 1}}})
把购物车项目js部分边看边写了一遍,把所有函数都变为箭头函数,简化代码,条理也很清楚;投票项目中把count赋值改为count = data[index]就可以把原始赋值带入;计划后续有时间自己再完全重写一遍购物车项目,包括CSS、html和js部分全部重写。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号