根据检查的兄弟状态检查输入

时间:2017-08-08 11:43:55

标签: javascript jquery html

我有一些JQuery代码可以浏览输入复选框列表并检查那些没有checked属性的

$('td input:checkbox.checkbox-excluded:not(:checked)', table).prop('checked', true).change();

我想添加第二个测试,这样我就不会检查那些有兄弟姐妹的人来检查

每个表格行都有两个复选框

> <td class=" downloaded"><input type="checkbox"
> class="checkbox-downloaded"></td><td class=" excluded"><input
> type="checkbox" class="checkbox-excluded"></td>

如何仅检查未检查的checkbox-excluded元素,并且还未检查其兄弟checkbox-downloaded

1 个答案:

答案 0 :(得分:0)

您可以使用.each(),然后使用.siblings()。 此外,如果您根据层次结构调整$('td')选择器的范围以提高性能,那会更好。

$('td').each(function(i0,td){
    $(td).find('>input[type="checkbox"].checkbox-excluded:not(:checked)').each(function(i1,checkbox){
        if($(td).siblings().find('>input[type="checkbox"].checkbox-downloaded:not(:checked)').length>0)
        {
            $(checkbox).prop('checked', true).change();
        }
    });
});