题解 | #全选#
全选
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);
}
})