复选框全选和取消全选demo

复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML复选框的全选和取消全选</title>
</head>

<body onload="bindClick()">
    <script>
        // function checkAll() {
        //     var firstCheck = document.getElementById("firstCheck");
        //     console.log(firstCheck)
        //     //获取选中状态
        //     console.log(firstCheck.checked)
        //     var aihaos = document.getElementsByName("aihao")
        //     if (firstCheck.checked) {
        //         //全选
        //         for (var i = 0; i < aihaos.length; i++) {
        //             aihaos[i].checked = true
        //         }
        //     } else {
        //         for (var i = 0; i < aihaos.length; i++) {
        //             aihaos[i].checked = false
        //         }
        //     }
        // }


        function checkAll() {
            var firstCheck = document.getElementById("firstCheck")
            var aihaos = document.getElementsByName("aihao")
            for (var i = 0; i < aihaos.length; i++) {
                aihaos[i].checked = firstCheck.checked
            }
        }


        //页面加载完成之后,为每个name是aihao的checkbox都绑定了点击事件
        function bindClick() {
            var aihaos = document.getElementsByName("aihao")
            console.log(aihaos.length)
            for (var i = 0; i < aihaos.length; i++) {
                aihaos[i].onclick = function () {//这样就为每个name是aihao的checkbox都绑定了点击事件
                    var count = aihaos.length
                    var checkNum = 0
                    for (var i = 0; i < aihaos.length; i++) {
                        if (aihaos[i].checked) {
                            checkNum++;
                        }
                    }
                    if (checkNum == count) {
                        document.getElementById("firstCheck").checked = true;
                    } else {
                        document.getElementById("firstCheck").checked = false;
                    }
                }
            }
        }
    </script>
    <input type="checkbox" id="firstCheck" onclick="checkAll()" />全选<br>
    <input type="checkbox" name="aihao" value="0" />抽烟<br>
    <input type="checkbox" name="aihao" value="1" />喝酒<br>
    <input type="checkbox" name="aihao" value="2" />烫头<br>
    <input type="checkbox" name="aihao" value="3" />跳舞<br>
    <input type="checkbox" name="aihao" value="4" />唱歌<br>
    <input type="checkbox" name="aihao" value="5" />睡觉<br>
    <input type="checkbox" name="aihao" value="6" />打豆豆<br>
</body>

</html>
相关推荐
小迷糊的学习记录11 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
空&白11 小时前
vue暗黑模式
javascript·vue.js
执风挽^12 小时前
Python基础编程题2
开发语言·python·算法·visual studio code
梦帮科技12 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
Z9fish12 小时前
sse哈工大C语言编程练习20
c语言·开发语言·算法
VT.馒头12 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
萧鼎12 小时前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
css趣多多12 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js
-凌凌漆-12 小时前
【vue】pinia中的值使用 v-model绑定出现[object Object]
javascript·vue.js·ecmascript
C澒13 小时前
前端整洁架构(Clean Architecture)实战解析:从理论到 Todo 项目落地
前端·架构·系统架构·前端框架