执行检查/取消检查复选框操作的更好方法



我使用jQuery进行复选框操作。我写了一小段代码使它发挥作用。

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

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

不知怎么的,我不相信我的代码。如果我能用更好的方法做,推荐。TIA。

$(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));
    });
});​

FIDDLE

1)每次给出时,您都在搜索DOM

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

等等。。。而是存储在变量中并使用

2) 要获得选中的复选框数量(你不需要迭代和计数),

$(':checkbox').find(':checked').length

最新更新