【Javascript】入门之checkbox的全选、反选和不选

 方法一:如果选中, checked属性为true, 反之为false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>复选框选择</title>
</head>
<body>
    <!-- 1.布局 -->
    <button id = "allcheck">全选</button>
    <button id = "reversecheck">反选</button>
    <button id = "nocheck">不选</button>
    <div class="check">
        <label for = "eat">
            <input type="checkbox" id="eat">吃饭
        </label>
        <label for = "sleep">
            <input type="checkbox" id="sleep">睡觉
        </label>
        <label for = "bean">
            <input type="checkbox" id="bean">打豆豆
        </label>
        <label for = "book">
            <input type="checkbox" id="book">看书
        </label>
        <label for = "entertain">
            <input type="checkbox" id="entertain">娱乐
        </label>
        <label for = "learn">
            <input type="checkbox" id="learn">爱学习
        </label>
        <label for = "lol">
            <input type="checkbox" id="lol">LOL
        </label>
        <label for = "king">
            <input type="checkbox" id="king">王者
        </label>
        <label for = "survive">
            <input type="checkbox" id="survive">绝地
        </label>
    </div>

    <script>
        // 2. 点击全选按钮, 所有复选框都选上
        // 2.1 获取全选按钮, 所有input
        var allcheck = document.getElementById('allcheck');
        console.log(allcheck);
        var checkbox = document.getElementsByTagName('input');
        console.log(checkbox);

        // 2.2 给全选按钮添加事件
        allcheck.onclick = function(){
            // 2.3 遍历所有checkbox
            for(var i = 0; i < checkbox.length; i++){
                 //1.4 将所有checkbox的checked属性设为true
                 checkbox[i].checked = true;
            }
        }

        // 3.点击不选按钮, 所有的都不选
        // 3.1 获取不选按钮
        var nocheck = document.getElementById('nocheck');
        console.log(nocheck);
        // 3.2 给不选按钮添加事件
        nocheck.onclick = function(){
            // 3.3 遍历所有checkbox
            for(var i = 0; i < checkbox.length; i++){
                // 3.4 将所有的checkbox的checked属性设为false
                checkbox[i].checked = false;
            }
        }

        // 4.点击反选按钮, 选中的变为不选中, 不选中的变为选中
        // 4.1 获取反选按钮
        var reversecheck = document.getElementById('reversecheck');
        console.log(reversecheck);

        // 4.2 给反选按钮添加事件
        reversecheck.onclick = function(){
            // 4.3 遍历所有checkbox
            for(var i = 0; i < checkbox.length; i++){
                // 如果是选中的, 则设置为不选
                if(checkbox[i].checked){
                    checkbox[i].checked = false;
                }else{
                    // 否则, 设置为选中
                    checkbox[i].checked = true;
                }
            }
        }
    </script>
</body>
</html>

方法二: 反选采用取反操作!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button>全选</button>
    <button>反选</button>
    <button>不选</button><br>

    <input type="checkbox" name="" id="">LOL
    <input type="checkbox" name="" id="">Data
    <input type="checkbox" name="" id="">王者
    <input type="checkbox" name="" id="">CF
    <input type="checkbox" name="" id="">CS
    <input type="checkbox" name="" id="">部落冲突
    <input type="checkbox" name="" id="">奇迹暖暖
    <input type="checkbox" name="" id="">Golf
    <input type="checkbox" name="" id="">俄罗斯方块
    <input type="checkbox" name="" id="">贪玩蓝月

    <script>
        /* 
            描述: 全选: 点击全选, 将所有的复选框都选中
        */
        // 1. 获取元素
        var btns = document.getElementsByTagName('button');
        var inps = document.getElementsByTagName('input');
        console.log(inps, btns);
        // 2. 添加事件
        btns[0].onclick = function(){
            // 将所有的复选框都选中
            for(var i = 0; i < inps.length; i++){
                // 复选框选中  
                console.log(inps[i].checked);
                inps[i].checked = true;
            }
        }

        /* 
            描述: 不选: 点击不选, 将所有的复选框都不选中
        */
        // 2. 添加事件
        btns[2].onclick = function(){
            // 将所有的复选框都选中
            for(var i = 0; i < inps.length; i++){
                // 复选框选中  
                console.log(inps[i].checked);
                inps[i].checked = false;
            }
        }

        /* 
            描述: 反选: 点击反选,让选中的复选框变成未选中  不选中的变成选中
        */
        // 2. 加事件
        btns[1].onclick = function(){
            // 判断每一个元素的按钮状态
            for(var i = 0; i < inps.length; i++){
                // if(inps[i].checked == true){
                //     inps[i].checked = false;
                // } else {
                //     inps[i].checked = true;
                // }

                console.log(inps[i].checked); // true--->false   false--->true  !取反  !true  false   !false  true
                // 将复选框的状态变成当前状态的相反状态
                inps[i].checked = !inps[i].checked;
            }
        }
    </script>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值