zoukankan      html  css  js  c++  java
  • DOM操作案例之--全选与反选

    全选与反选在表单类的项目中还是很常见的,电商项目中的购物车一定少不了这个功能。

    下面我只就用一个简单的案例做个演示吧。

    <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>小米手机</td>
                <td>2000</td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox"/>
                </td>
                <td>ThinkPad</td>
                <td>5000</td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox"/>
                </td>
                <td>iPhone7</td>
                <td>5000</td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox"/>
                </td>
                <td>iPhoneX</td>
                <td>9000</td>
            </tr>
            </tbody>
        </table>

    上面是是HTML部分代码,做了一个表格。

    下面是css代码:

    <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            .wrap {
                width: 300px;
                margin: 100px auto 0;
            }
    
            table {
                border-collapse: collapse;
                border-spacing: 0;
                border: 1px solid #c0c0c0;
                width: 300px;
            }
    
            th,
            td {
                border: 1px solid #d0d0d0;
                color: #404060;
                padding: 10px;
            }
    
            th {
                background-color: #09c;
                font: bold 16px "微软雅黑";
                color: #fff;
            }
    
            td {
                font: 14px "微软雅黑";
            }
    
            tbody tr {
                background-color: #f0f0f0;
            }
    
            tbody tr:hover {
                cursor: pointer;
                background-color: #fafafa;
            }
        </style>

    下面是js代码,实现全选反选功能。

    <script>
        var all = document.getElementById("j_cbAll");
        var tbody = document.getElementById("j_tb");
        var checkboxes = tbody.getElementsByTagName("input");//下面的单选框
        //点击all 让下面的的选中状态和all一致
        all.onclick = function () {
            for (var i = 0; i < checkboxes.length; i++) {
                checkboxes[i].checked = all.checked;
            }
        };
    
        //让下面的影响上面
        //点击每一个都判断 如果每一个都选中了 all就选中 否则不选中
        for (var i = 0; i < checkboxes.length; i++) {
            checkboxes[i].onclick = function () {
                var isCheckedAll = true;
                for (var i = 0; i < checkboxes.length; i++) {
                    if (!checkboxes[i].checked) {
                        isCheckedAll = false;
                        break;
                    }
                }
                all.checked = isCheckedAll;
            };
        }
    
    
    </script>
    

      

    上面就是这个案例的效果了。

    当然,这个还可以扩展一下,做成一个购物车的案例。

  • 相关阅读:
    Codeforces Round #595 (Div. 3) A,B,C,D
    计算几何板子题【2019牛客国庆集训派对day7——三角形和矩形】【多边形相交的面积】
    [POJ]POJ1753(dfs)
    [POJ]POJ2965(dfs)
    洛谷 P1772 [ZJOI2006]物流运输 题解
    简单概率与期望
    洛谷 P3802 小魔女帕琪 题解
    用树状数组实现的平衡树
    【模板】扩展中国剩余定理(EXCRT)
    新博客开通通知
  • 原文地址:https://www.cnblogs.com/thinkguo/p/8022173.html
Copyright © 2011-2022 走看看