我有一些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");
但它不起作用。请帮忙。
答案 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中,他们没有任何兄弟姐妹。