jquery实现复选框的全选操作

最近做了个需求,需要实现列表复选框的全选/取消全选操作,由于之前对这块不是很了解,所以从网上查了一些资料,虽然有各种实现方法,但没找到直接可以套用的。自己琢磨了下,把功能实现,整理如下。

实现细节如有可改进的地方,不吝赐教。

首先是html部分的代码,这里有一个表格,表格里面有一些选项:

<div id="list">
    <table>
        <tr><td>选项1<input type="checkbox" name="group" value="1"/></tr>
        <tr><td>选项2<input type="checkbox" name="group" value="2"/></tr>
        <tr><td>选项3<input type="checkbox" name="group" value="3"/></tr>
    </table>
</div>
全选<input type="checkbox" id="all"/>

接下来是jquery:

<script>
$(document).ready(function () {
    //全选或全不选
    $("#all").click(function () {
        if (this.checked) {
            $("#list :checkbox").attr("checked", true);
        } else {
            $("#list :checkbox").attr("checked", false);
        }
    });
    //设置全选复选框
    $("#list :checkbox").click(function () {
        allchk();
    });
    function allchk() {
        var chknum = $("#list :checkbox").size();//选项总个数
        var chk = 0;
        $("#list :checkbox").each(function () {
            if ($(this).attr("checked")) {
                chk++;
            }
        });
        if (chknum == chk) {//全选
            $("#all").attr("checked", true);
        } else {//不全选
            $("#all").attr("checked", false);
        }
    }
    //显示时执行一次
    allchk();
});
</script>

当全选框被点击时,判断选中状态,如果是选中,则为所有选项的复选框设置选中属性;如果是取消选中,则为所有选项的复选框取消选中属性。

同时,为每个选项复选框添加判断,当所有的选项复选框都选中时,全选框自动选中;否则,全选框取消选中。这里通过计数来比较(选项的数量和选中的选项数量),通过each方法来进行遍历。

最后,在显示时执行一次,这是确保如果初始状态就是所有选项都选中的状态,要保证全选框也是选中的状态。


参考:jquery中checkbox使用方法简单实例演示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值