案例:表单全选 取消全选案例

[line]题目如下[/line]
QQ图片20201125223503.png

案例大致分析

  1. 点击全选按钮,所有的按钮都被选中
  2. 当下方按钮都被选中,全选按钮便被选中
  3. 有一个按钮没有选中,全选按钮便不会选中(循环检查)

代码实现

<!DOCTYPE html>
<html lang="en">    
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>    
<body>
    <div class="wrap">
        <table>
            <thead>
                <tr>
                    <th>
                        <input type="checkbox" id="j_cbAll">
                    </th>
                    <th>商品</th>
                    <th>价钱</th>
                </tr>
            </thead>
            <tbody id="j_tb">
                <tr>
                    <td><input type="checkbox"></td>
                    <td>iphone8</td>
                    <td>8000</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>ipad Pro</td>
                    <td>5000</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>ipad Air</td>
                    <td>2000</td>
                </tr>
                <tr>
                    <td><input type="checkbox"></td>
                    <td>Apple Watch</td>
                    <td>2000</td>
                </tr>
            </tbody>
        </table>
    </div>        
</body>    
</html>

js部分

<script>
            //1.全选和取消全选的做法
            //获取元素
            var j_cbAll = document.getElementById('j_cbAll');
            var j_tbs = document.getElementById('j_tb').getElementsByTagName('input');
            //注册事件
            j_cbAll.onclick = function () {
                for (var i = 0; i < j_tbs.length; i++) {
                    j_tbs[i].checked = this.checked;
                }
            }
            //2.下面的复选按钮影响全选按钮
            for (var i = 0; i < j_tbs.length; i++) {
                j_tbs[i].onclick = function () {
                    //flag控制全选按钮是否选中
                    var flag = true;
                    //每次点击下面的复选框都要循环检查是否全被选中
                    for (var i = 0; i < j_tbs.length; i++) {
                        if (!j_tbs[i].checked) {
                            flag = false;
                            break;
                        }
                    }
                    j_cbAll.checked = flag;
                }
            }
</script>
© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容