<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>js实现全选</title>
</head>
<body>
<div>
<ul>
<li><input id="selectAll" type="checkbox" value="全选" />全选</li>
<li><input name="fruit" type="checkbox" value="苹果" />苹果</li>
<li><input name="fruit" type="checkbox" value="香蕉" />香蕉</li>
<li><input name="fruit" type="checkbox" value="橘子" />橘子</li>
<li><input name="fruit" type="checkbox" value="圣女果" />圣女果</li>
<li><input name="fruit" type="checkbox" value="甘蔗" />甘蔗</li>
</ul>
</div>
<script>
//DOM操作
var selectAll = document.getElementById('selectAll'); //获取全选元素
var input = document.getElementsByName('fruit'); //获取其他input元素
var num = 0;
//全选全不选的时候
function isSelectALl(flag){
for(var i = 0; i < input.length; i++){
input[i].checked = flag;
}
}
//点击全选
selectAll.onclick = function(){
if(selectAll.checked){
isSelectALl(true);
num = input.length;
}else{
isSelectALl(false);
num = 0;
}
}
//点击其他选项
input.forEach(function(item,index){
item.onclick = function(){
if(item.checked == false){
num --;
selectAll.checked = false;
}else{
num ++;
}
console.log(num,input.length);
if(item.checked == true && num == input.length){
selectAll.checked = true;
}
}
})
</script>
</body>
</html>