Answers:
使用时不要大于:
$("#panel :input");
该>
方法仅直接元素的孩子,如果你希望所有的孩子,无论深度只需使用一个空间。
你需要
var i = $("#panel input");
或,具体取决于您想要什么(请参见下文)
var i = $("#panel :input");
该>
会限制孩子,你希望所有的后裔。
编辑:正如尼克指出,$("#panel input")
和之间存在细微的差异$("#panel :input)
。
第一个将只检索类型的输入,即元素<input type="...">
,但不是<textarea>
,<button>
和<select>
元件。谢谢尼克,我自己不知道这一点,因此相应地更正了我的帖子。留下两个选项,因为我想OP都不知道这两个选项,并且-在技术上要求输入... :-)
如果您使用的是诸如Ruby on Rails或Spring MVC之类的框架,则可能需要使用带有方括号或其他字符的div,这是不允许使用的,document.getElementById
并且如果您有多个具有相同类型的输入,则此解决方案仍然有效。
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 i = $("#panel input");
应该管用 :-)
>将仅获取直接子级,而不会获取子级子级
:是用于使用伪类,例如。:hover等
您可以在此处了解伪类的可用CSS选择器:http : //docs.jquery.com/DOM/Traversing/Selectors#CSS_Selectors
:input
也是一个选择器,api.jquery.com/category/ selectors/ form- selectors 如果他有一个<textarea>
或按钮input
,找不到它,:input
那么会有所不同。
这是我的方法:
您可以在其他事件中使用它。
var id;
$("#panel :input").each(function(e){
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>
:
伪类的是,不是吗?但是我们要选择一个元素类型。为什么:
呢?