• 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;

    代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>表单全选+取消全选</title>
        <style>
        *{
              margin:0;padding: 0;
          }
          table{
              width:500px;
              position:relative;
              margin:100px auto;
              border-collapse:collapse;
              border:1px solid #d7d7d7;
          }
          thead tr{
              background-color:#222;
              font-weight: 600;
              color:#e9e9e9;
          }
          tbody tr:hover{
              background: #F5F5F5;
          }
          table tr{
              text-align: center;
              height:30px;
          }
        </style>
    </head>
    <body>
    <table border=1>
        <thead>
            <tr>
                <td><input type="checkbox" id='cekall'></td>
                <td>商品</td>
                <td>价钱</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input type="checkbox" name="" id=""></td>
                <td>iPhone 11</td>
                <td>5999.0</td>
            </tr>
            <tr>
                <td><input type="checkbox" name="" id=""></td>
                <td>荣耀20</td>
                <td>2299.0</td>
            </tr>
            <tr>
                <td><input type="checkbox" name="" id=""></td>
                <td>iPhone XR</td>
                <td>4499.0</td>
            </tr>
        </tbody>
        </table>
    </body>
    <script>
    
        // 1、全选和取消全选做法:让下面所有复选框的 checked属性(选中状态)跟随全选按钮即可
        // 获取元素,获取全选按钮和下面小的复选框
        var cekall = document.getElementById('cekall');
        var inp = document.querySelector('tbody').getElementsByTagName('input');
        // 注册事件
        cekall.onclick = function(){
            // this.checked  可以得到当前复选框的选中状态,如果是 true 就是选中,如果是 false 就是未选中
            console.log(this.checked);
            for(var i=0; i< inp.length; i++){
                inp[i].checked = this.checked;
            }
        }
        // 2、下面的复选框要全部选中,上面的全选按钮才能够全部选中,给下面的所有复选框绑定事件,每次点击,都要循环查看下面下面所有的复选框是否有没选中的,如果有没选中的复选框,那么上面的全选按钮就不选中。
        for(var i = 0; i<inp.length; i++){
            inp[i].onclick = function(){
            // 设置一个变量来控制按钮是否全部选中
            var flag = true;
            // 每次点击下面的复选框都要检查下面的四个小按钮是否被全部选中。
            for(var i =0; i<inp.length; i++){
                if(!inp[i].checked){
                    flag = false;
                    }
                }
            cekall.checked = flag;
            }
        }
    </script>
    </body>
    </html>

    实现效果:

    点击全选按钮

  • 相关阅读:
    web 框架本质 及python三大框架对比
    jquery 进阶 bootstrap
    BOM DOM jQuery
    JS基础
    Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器
    Linux(7)- Nginx.conf主配置文件、Nginx虚拟主机/访问日志/限制访问IP/错误页面优化、Nginx反向代理、Nginx负载均衡
    Linux(6)- redis发布订阅/持久化/主从复制/redis-sentinel/redis-cluster、nginx入门
    Linux(5)- MariaDB、mysql主从复制、初识redis
    Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim
    Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理
  • 原文地址:https://www.cnblogs.com/jijm123/p/16185362.html
Copyright © 2020-2023  润新知