设置复选框哪个父级具有某个css类来确定状态

时间:2013-05-22 10:38:49

标签: jquery

我的页面中有一个表格,其结构如下:

...<td class="ind"><input type="checkbox" .../> ... </td>
   <td><input type="checkbox" .../> ... </td> 
   <td><input type="checkbox" .../> ... </td> 

对于<td>中包含ind类的每个复选框,我想将该复选框设置为其不确定状态,如here

所示

我怎样才能让这件作品发挥作用?

$(document).ready(function() {
        var checkboxes = $(".ind").find(':checkbox');
        for (var i = 0; i < $(checkboxes).length; i++) {
            checkboxes[i].prop("indeterminate", true);
        }
    });

3 个答案:

答案 0 :(得分:2)

checkboxes[i]为您提供DOM节点,而不是jQuery对象,因此您无法使用.prop。使用checkboxes[i].indeterminate = truecheckboxes.eq(i).prop('indeterminate', true)

当然,代码可以简化。您不需要遍历复选框来设置属性,您可以立即将其设置为整个集合,jQuery将在内部处理迭代:

$('.ind :checkbox').prop('indeterminate', true);

答案 1 :(得分:2)

这是一个单行

$(".ind :checkbox").prop("indeterminate", true);

请注意,jQuery始终适用于所有选定的元素。你不需要写循环。

答案 2 :(得分:0)

.prop是一个jQuery方法,只需$ .each():

$(document).ready(function() {
    var checkboxes = $(".ind").find(':checkbox');
    // for (var i = 0; i < $(checkboxes).length; i++) {
    //    checkboxes[i].prop("indeterminate", true);
    // }

    checkboxes.each(function() {
        $(this).prop("indeterminate", true);
    });
});

编辑:正如tomlak所说,这实际上只是一个班轮:)因为你可以通过$(“。ind”)选择所有想要的复选框.find(':checkbox');你可以继续简单地继续jQuery:

$(".ind").find(':checkbox').prop("indeterminate", true);