function add(items) {let tbody = document.querySelector("tbody");
// 生成与商品数量对应的行 for (let i = 0; i < items.length; i++) { let tr = document.createElement("tr"); for (let key in items[i]) { let td = document.createElement("td"); td.innerHTML = items[i][key]; if (key == "price") { td.innerHTML = Number(items[i][key]).toFixed(2); } tr.appendChild(td); } let del = document.createElement("td"); del.innerHTML = `<a href="javascript:void(0);">删除</a>`; tr.appendChild(del); tbody.appendChild(tr); } bind(); } function bind() { let tbody = document.querySelector("tbody"); let tfoot = document.querySelector("tfoot"); let btnDelete = tbody.querySelectorAll("a"); function update() { // 同步更新总计里的数据 let rows = tbody.querySelectorAll("tr"); let totalPrice = 0; for (let i = 0; i < rows.length; i++) { totalPrice += Number(rows[i].querySelectorAll("td")[1].innerHTML); } tfoot.querySelector("td").innerHTML = `${totalPrice.toFixed(2)}(${rows.length}件商品)`; } update(); for (let i = 0; i < btnDelete.length; i++) { btnDelete[i].addEventListener("click", function () { // 每次删除行后,重新计算总计 document.querySelector("tbody").removeChild(this.parentNode.parentNode); update(); }) } }