源码如下:
js:
<script>
var all = document.getElementById('j_cbAll');
var checks = document.getElementById('j_tb').getElementsByTagName('input'); //伪数组
//全选、取消全选
all.onclick = function() {
// console.log(this.checked);
//利用this.checked判断checkbox是否选中,勾选为true,未勾选为false
for (var i = 0; i < checks.length; i++) {
//将this.checked赋值给下面的input,实现全选、取消全选
checks[i].checked = this.checked;
}
}
//反选
//给每个checks注册点击事件
for (var j = 0; j < checks.length; j++) {
checks[j].onclick = function() {
var flag = true;
//循环遍历checks检查是否被选中,如果有一个未被选中,全选框就不选中
for (var j = 0; j < checks.length; j++) {
//如果checks[j].checked为false,当前没有被选中,取反为真,全选框就不选中,break结束循环
if (!checks[j].checked) {
flag = false;
break;
}
}
all.checked = flag;
}
}
</script>