我有这个HTML标记:
<input type="text" name="name1" class="stat" value="">
<input type="checkbox" name="name1" value="">
<input type="text" name="name2" class="stat" value="">
<input type="checkbox" name="name2" value="">
<input type="text" name="namei" class="stat" value="">
<input type="checkbox" name="namei" value="">
where i = 1,2,3, ... n
问:如何选择名称为2的复选框?
这是正确的方法吗?
$('input[name="name2"]').find('input[type="checkbox"]').attr("disabled");
答案 0 :(得分:2)
您可以同时使用多个属性选择器。您的find
无效,因为checkbox
是文字input
的兄弟,而不是孩子。试试这个:
$('input[name="name2"][type="checkbox"]').prop("disabled");
请注意,这在性能上会非常慢。更好的解决方案是在复选框本身上使用class
或id
属性,然后选择该属性。此外,您应该使用prop
来检索元素的属性。
最后,如果要设置disabled
属性,则需要为prop
方法提供第二个参数:
$('input[name="name2"][type="checkbox"]').prop("disabled", true); // disables the element
答案 1 :(得分:1)
find()
选择匹配元素的降序元素。
这里,复选框和输入框是兄弟姐妹。
尝试:
$('input[type="text"][name="name2"]').next().attr("disabled","disabled");
OR
$('input[type="checkbox"][name="name2"]').attr("disabled","disabled");