题解 | #购物车#

购物车

http://www.nowcoder.com/practice/3b4a342351ce483e813e5588446fc1f8

// 新增行
function add(items) {
    var tbody = document.getElementsByTagName('tbody')[0]
    var tfoot = document.getElementsByTagName('tfoot')[0]
    // 获取初始数据
    let count = tbody.children.length
    let price = parseFloat(tfoot.innerText.match(/\d+.\d+/)[0])
    // 新增行
    let tr = ''
    for (let i = 0; i < items.length; i++) {
        count += 1
        price += items[i].price
        tr += `<tr><td>${items[i].name}</td><td>${items[i].price.toFixed(2)}</td><td><a href="javascript:void(0);">删除</a></td></tr>`
    }
    tbody.innerHTML += tr
    tfoot.innerHTML = `<tr><th>总计</th><td colspan="2">${price.toFixed(2)}(${count}件商品)</td></tr>`
}

// 绑定事件,事件代理
function bind() {
    var tbody = document.getElementsByTagName('tbody')[0]
    var tfoot = document.getElementsByTagName('tfoot')[0]
    tbody.addEventListener('click', function (e) {
        let num = tbody.children.length
        console.log(tbody);
        // 过滤点击的是否是a标签
        if (e.target.tagName === "A") {
            // 获取数据
            let price = parseFloat(e.target.parentElement.parentElement.innerHTML.match(/\d+.\d+/)[0])
            let total = tfoot.innerHTML.match(/\d+.\d+/)[0]
            e.target.parentElement.parentElement.remove()
            tfoot.innerHTML = `<tr><th>总计</th><td colspan="2">${(total - price).toFixed(2)}(${num - 1}件商品)</td></tr>`
        }
    })
}
// 执行绑定事件
bind()
全部评论
想请问飘号的作用是啥呀
点赞 回复 分享
发布于 2022-01-10 20:50

相关推荐

在写周报的打工人很独...:这个笔试昨天晚上做了一下,真难啊,前后端,ai全有
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务