function add(items) {
    let table = document.querySelector("tbody");
    let str = "";
    for (let i = 0; i < items.length; ++i) {
        let item = items[i];
        // 坑点,price要写toFixed(2)否则样例通过不了
        str += `
            <tr>
                <td>${item.name}</td>
                <td>${item.price.toFixed(2)}</td>
                <td><a href="javascript:void(0);">删除</a></td>
            </tr>
        `;
    }
    table.innerHTML += str;
    // 更新视图
    this.refresh();
}

function bind() {
    let table = document.querySelectorAll("tbody > tr");
    // 遍历tr项
    for (let i = 0; i < table.length; ++i) {
        let that = this
        // 得到删除按钮元素
        let deldom = table[i].querySelectorAll("td")[2];
        deldom.addEventListener('click', function (e) {
            table[i].remove()
            // 更新视图
            that.refresh();
        });
    }
}

function refresh() {
    let table = document.querySelectorAll("tbody > tr");
    let sum = 0;
    for (let i = 0; i < table.length; ++i) {
        // 获取物品的价格
        let cur = table[i].querySelectorAll("td")[1].innerText;
        sum += +cur;
    }
    let count = document.querySelector("tfoot td");
    count.innerText = `${sum.toFixed(2)}(${table.length}件商品)`
    // 坑点,因为会新增元素,所以需要刷新监听列表
    this.bind()
}