获取第一个空输入字段的名称 returns "undefined" (jquery)
Get name of first empty input field returns "undefined" (jquery)
我 运行 在获取第一个空输入字段的属性名称时遇到了问题。想不通,为什么他每次都returns"undefined"。
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4">
<script>alert($('input[value=""]').first().attr("name"));</script>
非常感谢您的帮助。
您要定位的元素没有 value
属性,因此没有与 [value=""]
选择器匹配的元素。您需要包含该属性,然后代码才能正常工作:
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2" value="">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4" value="">
如果您不想修改HTML(或无法修改),那么您需要使用filter()
来查找value
[=27]所需的元素=],始终可用。
var $emptyVal = $('input').filter(function() {
return !this.value;
});
alert($emptyVal.first().attr("name"))
您可以使用 :not[value]
来完成,如下所示。
alert($('input:not([value])').first().attr("name"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4">
我 运行 在获取第一个空输入字段的属性名称时遇到了问题。想不通,为什么他每次都returns"undefined"。
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4">
<script>alert($('input[value=""]').first().attr("name"));</script>
非常感谢您的帮助。
您要定位的元素没有 value
属性,因此没有与 [value=""]
选择器匹配的元素。您需要包含该属性,然后代码才能正常工作:
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2" value="">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4" value="">
如果您不想修改HTML(或无法修改),那么您需要使用filter()
来查找value
[=27]所需的元素=],始终可用。
var $emptyVal = $('input').filter(function() {
return !this.value;
});
alert($emptyVal.first().attr("name"))
您可以使用 :not[value]
来完成,如下所示。
alert($('input:not([value])').first().attr("name"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="test_1" value="not empty">
<input type="text" name="test_2">
<input type="text" name="test_3" value="not empty">
<input type="text" name="test_4">