我在这里遇到问题,获取第一个空输入字段的属性名称。无法弄清楚,为什么他会回来" 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>
非常感谢您的帮助。
答案 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="">
如果您不想修改HTML(或不能修改它),那么您需要使用filter()
来查找value
属性所需的元素,该属性始终可用。
var $emptyVal = $('input').filter(function() {
return !this.value;
});
alert($emptyVal.first().attr("name"))
答案 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">