2013-12-18 46 views
0

我有这样的HTML标记:JS选择输入的类型和名称

<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 

问:如何与NAME2选择复选框?

这是正确的方法吗?

$('input[name="name2"]').find('input[type="checkbox"]').attr("disabled"); 
+0

试输入[名称= “nam2”] [类型= “复选框”]。 – Andrew

+0

$('input [name =“name2”]')。find将找到dedeceends,实际上$('input [name =“name2”]')。filter(..)ok – Andrew

+0

“这是正确的吗? ,还没有测试过? – leaf

回答

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

find()选择匹配元素的降序元件。

在这里,复选框和输入框是兄弟姐妹。

尝试:

$('input[type="text"][name="name2"]').next().attr("disabled","disabled"); 

OR

$('input[type="checkbox"][name="name2"]').attr("disabled","disabled"); 
+1

@RoryMcCrossan谢谢。编辑答案 – Hiral

相关问题