题解 | #全选#

全选

http://www.nowcoder.com/practice/84b89f326e3c4e96bacb63296e84623a

let items = document.querySelectorAll(".item");

//使用事件代理,统一在ul标签上对事件进行监听处理
document.querySelector('ul').onchange = function(e) {
    if(e.target.id === 'all'){
        if(e.target.checked){
            items.forEach(item => {
                item.checked = true;
            });
        }else {
            items.forEach(item => {
                item.checked = false;
            });
        }
    }
    if(e.target.className === 'item'){
    	all.checked = [...items].every(item => item.checked);
    }
}
//使用普通的事件处理函数
all.onchange = function(e){
    console.log(this.checked)
    if(this.checked){
        items.forEach(item => {
            item.checked = true;
        });
    }else {
        items.forEach(item => {
            item.checked = false;
        });
    }
}
items.forEach(item => {
    item.onchange = function() {
        all.checked = [...items].every(item => item.checked);
    }
})
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务