如何实现复选框全选功能

<body>

    <p><input type="checkbox" id="ckAll">全选</p>

    <p><input type="checkbox" class="ck">北京</p>

    <p><input type="checkbox" class="ck">上海</p>

    <p><input type="checkbox" class="ck">广州</p>

    <p><input type="checkbox" class="ck">深圳</p>

    <script>

        // 获取全选复选框

        let ckAll = document.querySelector('#ckAll')

        // 获取全部的复选框

        let cks = document.querySelectorAll('.ck')

        // console.log(ckAll);

        // console.log(cks);

        // 给全选复选框注册点击事件

        ckAll.onclick = function() {

            // Checked返回值为boolean型

            // console.log(ckAll.Checked);

            // 遍历所有的复选框

            cks.forEach((ck, index) => {

                // console.log(ck ,index);

                // 将全选复选框的状态给所有的其它复选框

                ck.checked = ckAll.checked

            })

        }

        // 给其它的复选框也注册点击事件

        cks.forEach(ck => {

            ck.onclick = function() {

                // 只要有一个复选框的状态为非选中

                if([...cks].some(r => r.checked === false)){

                    // ckAll变为非选中状态

                    ckAll.checked = false

                // 所有复选框的状态都为选中

                }else if([...cks].every(r => r.checked)){

                    // ckAll变为选中状态

                    ckAll.checked = true

                }

            }

        })

    </script>

</body>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容