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

Jquery 执行复选框/取消复选框操作的更好方法,jquery,checkbox,jquery-selectors,Jquery,Checkbox,Jquery Selectors,我正在使用jQuery处理复选框操作。我写了一小段代码来让它工作 当我选中selectAll复选框时,它应该选中所有复选框,而当我取消选中任何复选框时,它应该取消选中“全选”复选框。而且,行为应该切换 请检查此代码段 不知怎的,我不相信我的代码。建议我是否可以用更好的方式来做。TIA。1)每次提交时,您都在搜索DOM $(':checkbox').attr('checked', true); $(':checkbox :first').click() 等等。。。 而是存储在变量中并使用它 2

我正在使用
jQuery
处理复选框操作。我写了一小段代码来让它工作

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

请检查此代码段

不知怎的,我不相信我的代码。建议我是否可以用更好的方式来做。TIA。

1)每次提交时,您都在搜索DOM

$(':checkbox').attr('checked', true);
$(':checkbox :first').click() 
等等。。。 而是存储在变量中并使用它

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


这类问题属于你,也许你最好把它移到那里?@raina77ow哦!我不知道那个入口。无论如何,要自动将它移植到那里吗?不确定,也许某个mod可以提供帮助。)见鬼,我可能会这样做……首先它选择
First()
元素并附加一个单击处理程序,然后使用
end()
返回到元素的原始集合以选择除第一个之外的所有元素。3)
:checkbox
已弃用,请使用
[type=“checkbox”]
$(':checkbox').find(':checked').length
$(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));
    });
});​