原生JS实现table表格checkbox复选框的全选取消全选

原生JS实现table表格checkbox复选框的全选与取消全选。先来看一下效果:

原生JS实现table表格checkbox复选框的全选取消全选

实现思路:

  1. 全选和取消全选做法:让下面所有复选框的checked属性(选中状态)跟随全选按钮即可;
  2. 下面复选框需要全部选中,上面全选才能选中做法:给下面所以复选框绑定点击事件,每次点击,都要循环查看下面所有的复选框是否有没选中的,上面全选就不选中;
  3. 可以设置一个变量,来控制全选是否选中。

HTML代码:

<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>iphone13</td>
            <td>10000</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" />
            </td>
            <td>ipad pro</td>
            <td>7000</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" />
            </td>
            <td>HUAWEI</td>
            <td>6280</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" />
            </td>
            <td>联想ThinkBook</td>
            <td>5399</td>
        </tr>
    </tbody>
</table>

CSS代码:

table {
  width: 100%;
  max-width: 600px;
  height: 320px;
  border-collapse: collapse;
  border: 1px solid #38678f;
  margin: 50px auto;
  background: white;
}
th {
  background: steelblue;
  height: 54px;
  width: 25%;
  font-weight: lighter;
  text-shadow: 0 1px 0 #38678f;
  color: white;
  border: 1px solid #38678f;
  box-shadow: inset 0px 1px 2px #568ebd;
  transition: all 0.2s;
}
tr {
  border-bottom: 1px solid #cccccc;
}
td {
  border-right: 1px solid #cccccc;
  padding: 10px;
  transition: all 0.2s;
}

关键JS代码:

var j_cbAll = document.getElementById('j_cbAll'); // 全选按钮
var j_tbs = document.getElementById('j_tb').getElementsByTagName('input'); // 下面所有的复选框
// 全选事件
j_cbAll.onclick = function () {
    // this.checked 它可以得到当前复选框的选中状态,如果是true就是选中,如果是false就是未选中
    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;
        // 每次点击下面的复选框都要循环检查这4个小按钮是否选中
        for(var i = 0; i < j_tbs.length; i++) {
            if (!j_tbs[i].checked) {
                // j_cbAll.checked = false;
                flag = false;
                break; // 退出for循环,这样可以提高执行效率,因为只要有一个没有选中,剩下的就无需循环判断了
            }
        }
        j_cbAll.checked = flag;
    }
}

结语

以上就是码云笔记用原生JS为大家实现的table表格checkbox复选框的全选取消全选,这个例子很简单,相信很多小伙伴都能啪啪敲出来,我呢只是很长时间用了太多框架了,没有拥抱原生JS,所以特此练练手。当然,如果这个小例子能够对新入行朋友提供一些参考,那就更完美了。

「点点赞赏,手留余香」

2

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:
1. 本站所有文章教程及资源素材均来源于网络与用户分享或为本站原创,仅限用于学习和研究。
2. 如果内容损害你的权益请联系客服QQ:1642748312给予处理。
码云笔记 » 原生JS实现table表格checkbox复选框的全选取消全选

发表评论

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们