var getCheckBox = document.getElementsByClassName('checkbox');
var i = 0;
function selectAll(SelectAllCheckBox){
if (SelectAllCheckBox.checked) {
while (i < getCheckBox.length){
getCheckBox[i].checked = true;
i++
}
}
else{
while(i < getCheckBox.length){
getCheckBox[i].checked = false;
i++
}
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Select All Checks</title>
</head>
<body>
<label><input type="checkbox" onchange="selectAll(this)">Select All</label><br><br>
<div>
<label><input type="checkbox" class="checkbox">checkbox 1</label><br>
<label><input type="checkbox" class="checkbox">checkbox 2</label><br>
<label><input type="checkbox" class="checkbox">checkbox 3</label><br>
<label><input type="checkbox" class="checkbox">checkbox 4</label><br>
<label><input type="checkbox" class="checkbox">checkbox 5</label><br>
<label><input type="checkbox" class="checkbox">checkbox 6</label><br>
</div>
</body>
</html>
大家好,我发现上面的代码可以选择所有复选框,并可以选择所有复选框,但是代码可以正常工作,但是当我取消选择所有复选框时,代码停止工作,并且在控制台中也没有显示任何错误。
请帮我
最佳答案
您应该将i
用作局部变量而不是全局var,因为根据您的函数,每次需要使用i
值定义0
。
var getCheckBox = document.getElementsByClassName('checkbox');
function selectAll(SelectAllCheckBox) {
var i = 0;
if (SelectAllCheckBox.checked) {
while (i < getCheckBox.length) {
getCheckBox[i].checked = true;
i++
}
} else {
while (i < getCheckBox.length) {
getCheckBox[i].checked = false;
i++
}
}
}
<label><input type="checkbox" onchange="selectAll(this)">Select All</label><br><br>
<div>
<label><input type="checkbox" class="checkbox">checkbox 1</label><br>
<label><input type="checkbox" class="checkbox">checkbox 2</label><br>
<label><input type="checkbox" class="checkbox">checkbox 3</label><br>
<label><input type="checkbox" class="checkbox">checkbox 4</label><br>
<label><input type="checkbox" class="checkbox">checkbox 5</label><br>
<label><input type="checkbox" class="checkbox">checkbox 6</label><br>
</div>