<script>
window.onload = function () {
var all = document.getElementsByName("checkbox");//对象
var allipt = document.getElementById("allinput") //全选
var unall = document.getElementById("unallinput")//全不选
var change = document.getElementById("changeinput")//反选
allipt.onclick = () => {
for (var i = 0; i < all.length; i++) {
all[i].checked = "true"
}
}
unall.onclick = () => {
for (var i = 0; i < all.length; i++) {
all[i].checked = "false"
}
}
change.onclick = () => {
for (var i = 0; i < all.length; i++) {
all[i].checked = !all[i].checked
}
}
}
</script>
一开始把属性checked的值true跟false写成string类型了,true是没有问题的也就是全选是没有任何问题,但到了全不选这出问题了,虽说改成false了,执行后开始true,并没有变成false
之后把引号去掉变成布尔值就行了
解决方法:
all[i].checked = "true"改成 all[i].checked = true
all[i].checked = false