Jquery 选中所有子复选框并取消选中

Jquery 选中所有子复选框并取消选中,jquery,checkbox,Jquery,Checkbox,如何使用父复选框选中和取消选中所有子复选框 例如 到目前为止,我编写的代码使用hat字符^来选中以所选复选框ID开头的所有复选框,例如;单击1将尝试选中ID以1-开头的所有框。选中1-2将选中以1-2开头的所有复选框 $("input[type='checkbox']").live('click', function() { var selected = $(this).attr('id').match(/\d+$/); alert(selected); $("input

如何使用父复选框选中和取消选中所有子复选框

例如

到目前为止,我编写的代码使用hat字符^来选中以所选复选框ID开头的所有复选框,例如;单击1将尝试选中ID以1-开头的所有框。选中1-2将选中以1-2开头的所有复选框

$("input[type='checkbox']").live('click', function() {
    var selected = $(this).attr('id').match(/\d+$/);
    alert(selected);
    $("input[id^='buCheck_"+selected+"-']").attr('checked','checked');
});
这个怎么样


你没有真正解释你的问题是什么。我猜它不适用于子复选框

可能最简单的方法是放弃对id的解析:

$("input[type='checkbox']").live('click', function() {
    var selected = $(this).attr('id');
    alert(selected);
    $("input[id^='"+selected+"-']").attr('checked','checked');
});

是的,这看起来很棒。但是我有一个担心,就是.each on:复选框,我假设它会循环通过页面上的每个复选框?我在这里担心的是,我可能有数百个框和性能问题。使用$(“:checkbox[class^='“+top_name+“]”)作为每个调用的选择器,那么就不需要内部if语句了。看见
$("input[type='checkbox']").live('click', function() {
    var selected = $(this).attr('id');
    alert(selected);
    $("input[id^='"+selected+"-']").attr('checked','checked');
});