JavaScript使用数组的every与forEach方法实现 全选以及取消全选功能

34 篇文章 1 订阅
20 篇文章 0 订阅

有时我们需要实现全选以及取消全选功能。使用数组方法就非常简单!

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div><input type="checkbox" name="chall" id="">全选</div>
    <ul>
        <li><input type="checkbox" name="goods" id="">1</li>
        <li><input type="checkbox" name="goods" id="">2</li>
        <li><input type="checkbox" name="goods" id="">3</li>
        <li><input type="checkbox" name="goods" id="">4</li>
    </ul>

    <script>
        var shop = document.getElementsByName('goods'), //获取li的多选节点
            butAll = document.getElementsByName('chall')[0];//获取全选按钮节点

        var dom = Array.from(shop);//为了使用数组的every方法  利用Array.from将维数组转为数组
        shop.forEach((item, index) => { 
            item.addEventListener('click', function () {//给li的多选逐一绑定选择事件
                var result = dom.every((item, index) => { //判断li的多选框是都全选了
                    return item.checked
                })
                butAll.checked = false //默认为全选按钮为没全选
                if (result) butAll.checked = true //如果every的返回值为true
    
            })
        })
        butAll.addEventListener('click', function () {  //全选按钮绑定事件
            shop.forEach((item, index) => {
                item.checked = butAll.checked //将li的input的checked与全选的checked进行绑定
            })
        })
    </script>
</body>

</html>

效果如下:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值