jQuery:搜索下一个复选框并禁用它

时间:2011-12-05 11:26:57

标签: jquery checkbox

我有一些checkbox元素,我想禁用下一个(或上一个)。

我的代码如下所示:

<td>
  <input type="checkbox" class="chkOk" />
</td>

<td>
  <input type="checkbox" class="chkNotOk" />
</td>

<!-- Futher checkboxes -->

我试过了:

$(function () {
    $('input[type=checkbox]').bind("click", function () {
        $(this).next('input[type=checkbox]').attr("disabled");
    });
});

还有:

$(this).siblings('input[type=checkbox]').attr("disabled");

但它不起作用。请帮忙。

1 个答案:

答案 0 :(得分:14)

您必须转到父td并找到下一个复选框:

var n = $(this).parent().nextAll().has(":checkbox").first().find(":checkbox");

这会使td使用parent,然后获取td的所有以下兄弟(nextAll),将匹配的集合减少为仅td }元素包含一个复选框(has),然后获取剩余集合中的第一个(first)。

请注意disabled是一个属性,您应该使用prop来设置它,而不是attr

n.prop("disabled", true);

您遇到的问题是因为您正在寻找所单击复选框的兄弟姐妹,而在您的示例HTML中,他们没有任何兄弟姐妹。