如何实现全选与反选

我们经常会看到有些网站中在需要有选项的地方会出现全选,当我们点击全选的时候,所有的都会被选中,下面我们来说一下如何实现这种效果。
先说一下思路:想要利用js写出全选按钮,首先我们要获取全选按钮和其他的选择按钮,然后给全选按钮注册点击事件,当全选按钮被点击的时候,除全选按钮之外的其他的选择框会被选中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="checkbox" id="btn">
<div id="box">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
</div>
</body>
</html>
<script>
    window.onload=function () {
//        1、获取全选按钮
        var oBtn=document.getElementById("btn");
//        2、获取box中的所有input
        var oBox=document.getElementById("box");
        var inputs=oBox.getElementsByTagName("input");
//           3、当点击全选按钮的时候所有的input被选中
//            3、1 给全选按钮添加点击事件
        oBtn.onclick=function () {
//            3、2 遍历box中的所有input
            for(var i=0;i<inputs.length;i++){
                inputs[i].checkd=true;
            }
        }
    }
</script>

反选,顾名思义就是当点击此反选按钮的时候之前没有选中的选择框会被选中,之前被选中的选择框会取消选中,下面我们来看一下实现这种需求的代码;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="checkbox" id="btn">
<div id="box">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
    <input type="checkbox">
</div>
</body>
</html>
<script>
    window.onload=function () {
//        1.获取反选按钮
        var oBtn=document.getElementById("btn");
//        2.获取box中的所以input
        var oBox=document.getElementById("box");
        var inputs=oBox.getElementsByTagName("input");
//        3.给反选按钮添加点击事件
        oBtn.onclick=function () {
            oBtn.checked=true;
           for(var i=0;i<inputs.length;i++){
//           3.1 遍历判断有哪些input的checked的值为false;
               if(inputs[i].checked==false){
//           3.2 给筛选出来的input的checked的值为true;
                   inputs[i].checked=true;
               }else {
//            3.3 给其他的赋值为false;
                   inputs[i].checked=false;
               }
           }
        }
    }
</script>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值