JS按类型和名称选择输入

时间:2013-12-18 07:42:12

标签: javascript jquery checkbox

我有这个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");

2 个答案:

答案 0 :(得分:2)

您可以同时使用多个属性选择器。您的find无效,因为checkbox是文字input的兄弟,而不是孩子。试试这个:

$('input[name="name2"][type="checkbox"]').prop("disabled");

请注意,这在性能上会非常慢。更好的解决方案是在复选框本身上使用classid属性,然后选择该属性。此外,您应该使用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");