在jQuery中,我如何只获得具有非空值的文本框?
例:
<input type="text" id="i1" value="" />
<input type="text" id="i2" value="bla bla" />
<textarea id="i3">more bla bla</textarea>
<input type="text" id="i4" value="" />
Run Code Online (Sandbox Code Playgroud)
如何编写一个只能输入i2和i3的查询?(一次性,我试图避免"for"循环)
谢谢!
这可以做到这一点:
var $nonEmptyItems = $("input,textarea").filter(function() {
return $(this).val() != "";
});
Run Code Online (Sandbox Code Playgroud)
首先,您的HTML应该看起来像这样:
<input type="text" id="i1" value="">
<input type="text" id="i2" value="bla bla">
<textarea id="i3">more bla bla</textarea>
<input type="text" id="i4" value="">
Run Code Online (Sandbox Code Playgroud)
我假设大多数浏览器默认type="text"为输入字段,如果没有指定,但我认为你不能依靠它们来弄清楚这val意味着什么value.最后,textarea文本必须介于<textarea>标签之间.
不过,关于你的问题.这条线将做你想要的:
$('input[type="text"], textarea').filter(function() { return $(this).val(); });
Run Code Online (Sandbox Code Playgroud)
您可以使用jQuery的grep函数,该函数循环遍历数组并仅保留您传递给函数的值(从中返回真值)$.grep.在这种情况下,您传递的数组是与$('input[type="text"], textarea')选择器匹配的jQuery对象数组,即文本字段和textareas.您传递的函数选择所需的元素只返回文本框或textarea的值.如果它为空,则返回值为falsy且节点被排除,如果它是任何非空字符串,则返回值为truthy且包含节点.
| 归档时间: |
|
| 查看次数: |
7479 次 |
| 最近记录: |