如何获得一个div元素(jQuery的)
HTML的所有子输入:如何获得一个div元素(jQuery的)
<div id="panel">
<table>
<tr>
<td><input id="Search_NazovProjektu" type="text" value="" /></td>
</tr>
<tr>
<td><input id="Search_Popis" type="text" value="" /></td>
</tr>
</table>
</div>
我需要在特定的div来选择所有输入。
这不工作:
var i = $("#panel > :input");
使用它,而不大于:
$("#panel :input");
的>
意味着只有直接儿童的元素,如果你希望所有的孩子,无论深度只是使用一个空间。
你需要
var i = $("#panel input");
或,这取决于你想要什么(见下文)
var i = $("#panel :input");
的>
会限制孩子,你希望所有的后裔。
编辑:正如尼克指出的那样,$("#panel input")
和$("#panel :input)
之间存在细微的差异。
第一个将只检索类型的输入元件,即<input type="...">
,但不是<textarea>
,<button>
和<select>
元件。感谢尼克,我自己不知道这一点,并相应地纠正了我的帖子。离开这两个选项,因为我猜OP是不知道的,要么和-technically-要求输入... :-)
var i = $("#panel input");
应该工作:-)
的>将只取直接的孩子,没有孩子的孩子
:是用于伪类,例如。 :悬停等
你可以看到伪类这里提供的css-选择:http://docs.jquery.com/DOM/Traversing/Selectors#CSS_Selectors
@henchman - ':input'也是一个选择器,http://api.jquery.com/category/selectors/form-selectors/ If他有一个'
+1,所以忽略>会做伎俩。现在我也发现它在我推荐的页面上。 – 2010-03-08 16:21:38
“查找”方法可以用来获得已经被缓存到容器的所有子输入保存再次查找(而“儿童”方法只会得到直接的孩子)。例如
var panel= $("#panel");
var inputs = panel.find("input");
这对我来说非常完美 - 我使用.each()循环元素,这意味着在循环内我使用$(this)访问当前元素。因此,我无法执行很多答案中的其他建议。 - 而是我可以做$(this).find(“input”);谢谢。 – djbp 2013-05-23 11:08:58
如果您使用的是像Ruby on Rails的或Spring MVC框架,你可能需要使用用方括号或其他字符,这是不允许的,你可以使用document.getElementById
,如果你有多个这种解决方案仍然有效的div具有相同类型的输入。
var div = document.getElementById(divID);
$(div).find('input:text, input:password, input:file, select, textarea')
.each(function() {
$(this).val('');
});
$(div).find('input:radio, input:checkbox').each(function() {
$(this).removeAttr('checked');
$(this).removeAttr('selected');
});
这个例子说明如何清除输入,你比如你需要去改变它。
这是我的方法:
您可以在其他事件中使用它。
var id;
$("#panel :input").each(function(e){ \t
id = this.id;
// show id
console.log("#"+id);
// show input value
console.log(this.value);
// disable input if you want
//$("#"+id).prop('disabled', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="panel">
<table>
<tr>
<td><input id="Search_NazovProjektu" type="text" value="Naz Val" /></td>
</tr>
<tr>
<td><input id="Search_Popis" type="text" value="Po Val" /></td>
</tr>
</table>
</div>
有趣......现在我很困惑...的':'是伪类,是不是?但是我们想要选择一个元素类型。为什么':'? – mnemosyn 2010-03-08 16:15:04
@mnemosyn - 这是另一种类型的选择器,像':checkbox'是,详细信息见这里:http://api.jquery.com/input-selector/这里有一个更完整的列表:http:// api .jquery.com/category/selectors/form-selectors/ – 2010-03-08 16:18:16
感谢Nick,并没有意识到这一点。修正了我的答案。 – mnemosyn 2010-03-08 16:27:37