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>

09-13 03:10