• JS实现表单全选以及取消全选实例


    实现效果:

    全选按钮:点击全选按钮所有的小按钮都会被选中;点掉全选按钮,所有按钮取消选中;

    小按钮:只有全部被选中,全选按钮才会被选中

    思路分析:

    1、全选和取消全选做法:让下面所有复选框的 checked属性(选中状态)跟随全选按钮即可

    使用 this.checked 可以获得当前复选框的状态,如果是true就代表被选中,如果是false就代表没被选中。

    注:<input>的 checked 属性是一个布尔属性,checked 属性规定在页面加载时应该被预先选定的<input> 元素。

    inp[i].checked = this.checked; 使下面所有的复选框的checked属性值等同于 全选按钮的checked值,跟随全选按钮的状态。

    this.checked 得到的是 true或是 false,如果是true,就把true赋值给所有下面的复选框的 checked属性。

    想实现全选和取消全选,最核心的思路就在于:把全选按钮当前是否选中的状态,将这个状态赋给下面所有复选框

    2、下面的复选框需要全部选中,上面全选按钮才是选中状态的做法:下面复选框的小按钮有一个没被选中,那么全选按钮也是没被选中的状态)给下面的复选框绑定点击事件,每次点击都要循环查看下面复选框是否还有没被选中的,如果有一个没被选中的,上面全选就不选中。

    3、可以设置一个变量来控制全选按钮是选中还是没选中var flag=true;


    代码:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>表单全选+取消全选</title>
     6     <style>
     7     *{
     8           margin:0;padding: 0;
     9       }
    10       table{
    11           width:500px;
    12           position:relative;
    13           margin:100px auto;
    14           border-collapse:collapse;
    15           border:1px solid #d7d7d7;
    16       }
    17       thead tr{
    18           background-color:#222;
    19           font-weight: 600;
    20           color:#e9e9e9;
    21       } 
    22       tbody tr:hover{
    23           background: #F5F5F5;
    24       }
    25       table tr{
    26           text-align: center;
    27           height:30px;
    28       }
    29     </style>
    30 </head>
    31 <body>
    32 <table border=1>
    33     <thead>
    34         <tr>
    35             <td><input type="checkbox" id='cekall'></td>
    36             <td>商品</td>
    37             <td>价钱</td>
    38         </tr>
    39     </thead>
    40     <tbody>
    41         <tr>
    42             <td><input type="checkbox" name="" id=""></td>
    43             <td>iPhone 11</td>
    44             <td>5999.0</td>
    45         </tr>
    46         <tr>
    47             <td><input type="checkbox" name="" id=""></td>
    48             <td>荣耀20</td>
    49             <td>2299.0</td>
    50         </tr>
    51         <tr>
    52             <td><input type="checkbox" name="" id=""></td>
    53             <td>iPhone XR</td>
    54             <td>4499.0</td>
    55         </tr>
    56     </tbody>    
    57     </table>
    58 </body>
    59 <script>
    60     
    61     // 1、全选和取消全选做法:让下面所有复选框的 checked属性(选中状态)跟随全选按钮即可
    62     // 获取元素,获取全选按钮和下面小的复选框
    63     var cekall = document.getElementById('cekall');
    64     var inp = document.querySelector('tbody').getElementsByTagName('input');
    65     // 注册事件
    66     cekall.onclick = function(){
    67         // this.checked  可以得到当前复选框的选中状态,如果是 true 就是选中,如果是 false 就是未选中
    68         console.log(this.checked);
    69         for(var i=0; i< inp.length; i++){
    70             inp[i].checked = this.checked;
    71         }
    72     }
    73     // 2、下面的复选框要全部选中,上面的全选按钮才能够全部选中,给下面的所有复选框绑定事件,每次点击,都要循环查看下面下面所有的复选框是否有没选中的,如果有没选中的复选框,那么上面的全选按钮就不选中。
    74     for(var i = 0; i<inp.length; i++){
    75         inp[i].onclick = function(){
    76         // 设置一个变量来控制按钮是否全部选中
    77         var flag = true;
    78         // 每次点击下面的复选框都要检查下面的四个小按钮是否被全部选中。
    79         for(var i =0; i<inp.length; i++){
    80             if(!inp[i].checked){
    81                 flag = false;
    82                 }
    83             }
    84         cekall.checked = flag;
    85         }
    86     }
    87 </script>
    88 </body>
    89 </html>

     实现效果:

    点击全选按钮

     

  • 相关阅读:
    认识Java数组(一)
    Java之定时任务详解
    Java三大特征之多态(三)
    Java三大特征之继承(二)
    Java三大特征之封装(一)
    eclipse常用快捷键汇总
    JDK动态代理
    Java代理模式——静态代理模式
    CRISPR/Cas9基因敲除原理及实验建议
    MicroRNA 详解
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11932887.html
Copyright © 2020-2023  润新知