2

我正在使用jQuery. 我写了一小段代码来让它工作。

当我选中selectAll复选框时,它应该选择所有复选框,而当我取消选中任何一个复选框时,它应该取消选中“全选”。而且,行为应该切换。

请检查此代码段检查 - 取消选中

不知何故,我不相信我的代码。推荐我是否可以以更好的方式做到这一点。TIA。

4

2 回答 2

2
$(function() {
    var elems = $('input[type="checkbox"]');

    elems.first().on('change', function() {
        $(this).siblings(elems).prop('checked', this.checked);
    }).end().not(':first').on('change', function() {
        elems.first()
             .prop('checked', ((this.checked ? elems.length - 1 : elems.length) == $(elems)
             .filter(':checked').length));
    });
});​

小提琴

于 2012-09-06T13:31:50.903 回答
0

1)你每次给的时候都在搜索 DOM

$(':checkbox').attr('checked', true);
$(':checkbox :first').click() 

等等...而不是存储在变量中并使用它

2)得到没有。选中的复选框(你不需要迭代和获取计数),

$(':checkbox').find(':checked').length
于 2012-09-03T14:33:16.653 回答