题解 | #购物车#

购物车

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

function add(items) {
    const tbody = select('tbody')[0];
    for(let i = 0; i < items.length;i++) {
        tbody.innerHTML += `<tr>
                                <td>${items[i].name}</td>
                                <td>${(items[i].price * 1).toFixed(2)}</td>
                                <td><a href="javascript:void(0);">删除</a></td>
                            </tr>`
    }
    renderTotal();
    bind();
}
 
function bind() {
    const tbody = select('tbody')[0];
    const trList = select('tr',tbody);
    const aList = select('a',tbody);
    tbody.addEventListener('click',function(e) {
        let t = e.target;
        if(t.tagName == 'A') {
            tbody.removeChild(trList[aList.indexOf(t)]);
            renderTotal();
        }
    })
}
 
function renderTotal() {
    const tbody = select('tbody')[0];
    const tfoot = select('tfoot')[0];
    const totalNode = select('td',tfoot)[0];
    const trList = select('tr',tbody);
    const sum = trList.reduce((total,tr) => total + tr.children[1].innerText * 1,0);
    totalNode.innerHTML = `${sum.toFixed(2)}(${trList.length}件商品)`;
}
 
function select(name,el = null) {
    if(!el) {
        return [].slice.call(document.getElementsByTagName(name),0)
    };
    return [].slice.call(el.getElementsByTagName(name),0);
}

add([{name: '产品',price: 66}]);

全部评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
12-08 15:35
浙江大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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