使用JavaScript实现全选(全不选)按钮

有如下案例,使用JavaScript实现全选(全不选)按钮。

这个按钮在实际开发中也是很常用的,我就把我的源码附上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多选框练习</title>
</head>
<body>

<input type="checkbox" id="n2" onclick="set();"/>全选/全不选<br/><hr/>

<input type="checkbox" name="nn" />羽毛球<br/>
<input type="checkbox" name="nn" />蓝球<br/>
<input type="checkbox" name="nn" />橄榄球<br/>
<input type="checkbox" name="nn" />乒乓球<br/>
<input type="checkbox" name="nn" />足球<br/>
<input type="checkbox" name="nn" />棒球<br/><hr/>


<input type="button" value="全选" onclick="setAll();" />
<input type="button" value="全不选" onclick="setNone();" />
<input type="button" value="反选" onclick="setBack();" />
<script type="text/javascript">


    function setAll() {
        var a=document.getElementsByName("nn");//先获取input多选框
        //获取的a是个数组,遍历这个数组,设置checked属性
        for(var i=0;i<a.length;i++){
            a[i].checked=true;//checked为true时是选中,false时是未选中
        }
    }
    function setNone() {
        var a=document.getElementsByName("nn");
        for(var i=0;i<a.length;i++){
            a[i].checked=false;
        }
    }
    function setBack() {
        var c=document.getElementsByName("nn");
        for(var i=0;i<c.length;i++){
            if(c[i].checked==true){
                c[i].checked=false;
            }
            else{
                c[i].checked=true;
            }
        }
    }
    function set() {
        var d=document.getElementById("n2");
        if(d.checked==true){
            setAll();//直接调用已有的方法,设置checked属性
        }
        else{
            setNone();
        }
    }

</script>

</body>
</html>

初步效果如下:

 有任何问题可以评论,我都会看哦!

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下方式实现: HTML: ```html <!-- 假设你有一组 checkbox,它们的 class 都是 "checkbox-item" --> <input type="checkbox" id="check-all" /> 全选/全不选 <input type="checkbox" class="checkbox-item" /> <input type="checkbox" class="checkbox-item" /> <input type="checkbox" class="checkbox-item" /> <!-- 其他 checkbox 组成的列表 --> ``` JS: ```javascript var checkAll = document.getElementById('check-all'); var checkBoxItems = document.querySelectorAll('.checkbox-item'); checkAll.addEventListener('change', function() { var isChecked = checkAll.checked; for (var i = 0; i < checkBoxItems.length; i++) { checkBoxItems[i].checked = isChecked; } }); for (var i = 0; i < checkBoxItems.length; i++) { checkBoxItems[i].addEventListener('change', function() { var isAllChecked = true; for (var j = 0; j < checkBoxItems.length; j++) { if (!checkBoxItems[j].checked) { isAllChecked = false; break; } } checkAll.checked = isAllChecked; }); } ``` 解释一下,首先获取全选/全不选按钮和所有的 checkbox,然后给全选/全不选按钮添加 change 事件监听器,在事件处理函数中,将所有的 checkbox 的 checked 属性值设为当前全选/全不选按钮的 checked 属性值。 同时,给每个 checkbox 添加 change 事件监听器,在事件处理函数中,先遍历所有 checkbox 确定是否有未选中的,如果有就不是全选状态,否则就是全选状态,将全选/全不选按钮的 checked 属性值设为对应的状态即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值