利用绑定单击事件以及循环来实现表单的全选和反选案例分析
全选案例
1.获取全选复选框的状态:checked状态,它是一个内置属性
2.获取下面的所有复选框,获取的是一个伪数组,遍历为每一个复选框的checked设置为全选复选框的状态值
let checkAll = document.querySelector('#checkAll')
let all = document.querySelector('.all')
let cks = document.querySelectorAll('.ck')
console.log(checkAll, all, cks);
checkAll.addEventListener('click', function () {
let state = checkAll.checked
for (let i = 0; i < cks.length; i++) {
cks[i].checked = state
}
all.innerText = state ? '取消' : '全选'
})
for (let i = 0; i < cks.length; i++) {
cks[i].addEventListener('click', function () {
let count = document.querySelectorAll('.ck:checked').length
if (count == cks.length) {
checkAll.checked = true
all.innerText = '取消'
} else {
checkAll.checked = false
all.innerText = '全选'
}
})
}
for (let i = 0; i < cks.length; i++) {
cks[i].addEventListener('click', function () {
let count = 0
cks.forEach(function (v, i) {
if (v.checked == true) {
count++
}
})
if (count == cks.length) {
checkAll.checked = true
all.innerText = `取消`
} else {
checkAll.checked = false
all.innerText = `全选`
}
})
}