获取第一个空输入字段的名称返回" undefined" (jquery的)

时间:2016-01-28 14:20:33

标签: jquery input undefined

我在这里遇到问题,获取第一个空输入字段的属性名称。无法弄清楚,为什么他会回来" 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>

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您要定位的元素没有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="">

Example fiddle

如果您不想修改HTML(或不能修改它),那么您需要使用filter()来查找value属性所需的元素,该属性始终可用。

var $emptyVal = $('input').filter(function() {
    return !this.value;
});

alert($emptyVal.first().attr("name"))

Example fiddle

答案 1 :(得分:4)

您可以使用以下: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">