Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中“车身不工作”下的所有复选框_Javascript_Jquery_Html_Checkbox_Html Table - Fatal编程技术网

Javascript 选中“车身不工作”下的所有复选框

Javascript 选中“车身不工作”下的所有复选框,javascript,jquery,html,checkbox,html-table,Javascript,Jquery,Html,Checkbox,Html Table,我不确定这个jquery为什么不起作用。我想要的非常简单:选中区域下的所有复选框。有人能告诉我为什么它不起作用吗 $(函数(){ $('.select_all').change(函数(){ var checkthis=$(this); var复选框=$(this).next('tbody').find('region_-ct'); if(checkthis.is(':checked')){ 复选框.attr('checked',true); }否则{ 复选框.attr('checked',fa

我不确定这个jquery为什么不起作用。我想要的非常简单:选中区域下的所有复选框。有人能告诉我为什么它不起作用吗

$(函数(){
$('.select_all').change(函数(){
var checkthis=$(this);
var复选框=$(this).next('tbody').find('region_-ct');
if(checkthis.is(':checked')){
复选框.attr('checked',true);
}否则{
复选框.attr('checked',false);}
});
});

美洲
全选
阿根廷
巴巴多斯
亚洲
...

t车身
不是
的sibing。选择所有
。您需要使用来选择
的父项。选择\u all
并使用
.find()
在其中选择
.region\u ct
。另外,您不需要使用
if/else
选中/取消选中
复选框。仅使用
.prop()
this.checked设置为复选框的checked属性

$('.select_all')。更改(函数(){
$(this.closest('table').find('region_ct').prop('checked',this.checked));
});

美洲
全选
阿根廷
巴巴多斯
亚洲

t车身
不是
的sibing。选择所有
。您需要使用来选择
的父项。选择\u all
并使用
.find()
在其中选择
.region\u ct
。另外,您不需要使用
if/else
选中/取消选中
复选框。仅使用
.prop()
this.checked设置为复选框的checked属性

$('.select_all')。更改(函数(){
$(this.closest('table').find('region_ct').prop('checked',this.checked));
});

美洲
全选
阿根廷
巴巴多斯
亚洲

这里有几个问题:

  • 我强烈建议不要将
    tr
    tbody
    元素混用。如果您要使用
    t车身
    (您应该这样做),请始终如一地使用它。浏览器可以将
    tr
    元素重新定位到生成的
    tbody
    元素中

  • 您正在调用的
    next
    元素没有以下同级(更不用说您正在寻找的同级了)。您必须向上遍历层次结构到
    tr
    (如果您不修复#1)或
    tbody
    (如果您修复)

  • 您没有使用
    attr
    设置
    已选中的
    ,而是使用
    prop
    ;您可以使用现有的
    checked
    布尔值,而不是
    if/else
    ,giving只是
    复选框.prop(“checked”,this.checked)

  • 更新了
    t正文
    s的示例,我添加了亚洲地区的一些国家,以证明仅选中了相关复选框:

    $(函数(){
    $('.select_all').change(函数(){
    var checkthis=$(this);
    var复选框=$(this).closest('tbody').next().find('region_-ct');
    复选框.prop(“选中”,this.checked);
    });
    });
    
    
    美洲
    全选
    阿根廷
    巴巴多斯
    亚洲
    全选
    中国
    越南
    
    这里有几个问题:

  • 我强烈建议不要将
    tr
    tbody
    元素混用。如果您要使用
    t车身
    (您应该这样做),请始终如一地使用它。浏览器可以将
    tr
    元素重新定位到生成的
    tbody
    元素中

  • 您正在调用的
    next
    元素没有以下同级(更不用说您正在寻找的同级了)。您必须向上遍历层次结构到
    tr
    (如果您不修复#1)或
    tbody
    (如果您修复)

  • 您没有使用
    attr
    设置
    已选中的
    ,而是使用
    prop
    ;您可以使用现有的
    checked
    布尔值,而不是
    if/else
    ,giving只是
    复选框.prop(“checked”,this.checked)

  • 更新了
    t正文
    s的示例,我添加了亚洲地区的一些国家,以证明仅选中了相关复选框:

    $(函数(){
    $('.select_all').change(函数(){
    var checkthis=$(this);
    var复选框=$(this).closest('tbody').next().find('region_-ct');
    复选框.prop(“选中”,this.checked);
    });
    });
    
    
    美洲
    全选
    阿根廷
    巴巴多斯
    亚洲
    全选
    中国
    越南
    
    tbody
    不是
    的下一个兄弟姐妹或兄弟姐妹。选择\u all
    复选框哦,如果是,如何找到下一个tbody,就在选择\u all
    tbody
    之后。选择\u all
    复选框哦,如果是,如何找到下一个tbody,选择完后,我认为下一个
    对象的目标是在其他
    t主体
    s中有其他不相关的
    .region\u ct
    框。我认为下一个
    对象的目标是有其他,不相关的
    。其他
    t正文中的区域\u ct
    框。感谢您修复代码并进行解释!非常感谢!感谢您修复代码和解释!非常感谢!