JS实现全选、不选和反选效果

时间:2021-11-03 09:44:55

利用javascript实现全选、不选和反选效果
这个啥也不用多说,直接来代码,代码中自有注释帮你理解

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload = function(){
// 获取所有的按钮
var btns = document.getElementsByTagName("button");
// 获取所有的选项input
var inputs = document.getElementsByTagName("input");

// 全选或者不选的时候 调用此函数
function fun(flag){
for (var i=0; i<inputs.length;i++) {
inputs[i].checked = flag;
}
}

//获取第一个按钮 “全选”
btns[0].onclick = function(){
fun(true);
}

// 获取第二个按钮 "不选"
btns[1].onclick = function(){
fun(false);
}
// 获取第三个按钮 “反选”
btns[2].onclick = function(){
// 遍历所有的选项,判断每一个选项是否被选中
for (var i=0;i<inputs.length;i++) {
inputs[i].checked == true ? inputs[i].checked = false : inputs[i].checked = true;
}
}

}
</script>
</head>
<body>
<div id="box1">
<button>全选</button>
<button>不选</button>
<button>反选</button>
</div>
<div id="box2">
<ul>
<li>选项1:<input type="checkbox"></li>
<li>选项2:<input type="checkbox"></li>
<li>选项3:<input type="checkbox"></li>
<li>选项4:<input type="checkbox"></li>
<li>选项5:<input type="checkbox"></li>
<li>选项6:<input type="checkbox"></li>
<li>选项7:<input type="checkbox"></li>
<li>选项8:<input type="checkbox"></li>
<li>选项9:<input type="checkbox"></li>

</ul>
</div>

</body>
</html>

效果展示
JS实现全选、不选和反选效果

其他实现效果,自行查看!

今天一位好友,给我指出,在反选效果中,此代码

inputs[i].checked = false : inputs[i].checked = true;

可以精简为

inputs[i].checked = !inputs[i].checked;

效果还是一样的。在这里表示衷心的感谢。也希望看到的朋友,如果对我写的代码有更好的建议,请多多赐教。我一定虚心向你学习!