尝试填充一系列输入字段,以便始终填充第一个空输入。代码似乎总是会填充第一个输入...任何想法?
jQuery(document).ready(function() {
for (i = 0; i < 4; i++) {
$('.field:empty:first').val(i);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>
最佳答案
jQuery的:empty
selector不会像您想的那样选择空的input
。而是意味着该元素没有子元素。在您的示例中,所有input
元素都是这种情况。然后:first
selector在每个循环中选择第一个元素。
Intead,您can use .filter()
查找具有空值后跟.first()
的字段:
var emptyFields = $('.field').filter(function() { return $(this).val() === ""; });
emptyFields.first().val(i);
jQuery(document).ready(function() {
for (i = 0; i < 4; i++) {
var emptyFields = $('.field').filter(function() { return $(this).val() === ""; });
emptyFields.first().val(i);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>
<input class="field" /><br/>