我可以给出的最简短的解释:
我连续有5(0到4)个输入字段。我想找到一个非空的最远的那个。
例如:
[ ] [ ] [ ] [ ] [ xyz ]
代码应返回4,因为最右边的输入框不是空白。
又一个例子:
[ 123 ] [ ] [ abc ] [ ] [ ]
代码应该返回2,因为“abc”是最右边的,输入字段中包含数据。
答案 0 :(得分:3)
查看我的working Fiddle
守则:
<input name="a" type="text" >
<input name="b" type="text" >
<input name="c" type="text" >
<input name="d" type="text" >
<button>LAST ONE</button>
<script>
$(document).ready(function(){
function func(){
alert($("input").filter(function() {
return this.value.length !== 0;
}).last().index());
}
$("button").click(function(){
func();
});
});
</script>
答案 1 :(得分:0)
试试这个:
var idx;
$('input'/*or whatever the correct selector is*/).each(function(i) {
if($(this).val()) {
idx = i;
}
});
console.log(idx);
答案 2 :(得分:0)
尝试一下,
alert($('input:not(:empty)')。last()。index()); 击>
alert($("input[value!='']").last().index());
或试试这个,
var xTest = $("input").filter(function(){
return $(this).val() != '';
}).last();
alert(xTest.index());
答案 3 :(得分:0)
从选择结束开始并返回第一个有值的索引怎么样?在我看来,需要的迭代次数越少,性能越好:
function returnIndex($items) {
for (var i=$items.length-1; i>0; i--) {
var $thisItem = ;
if ($items.eq(i).val()) {
return i;
}
}
return $items.eq(0).val() ? 0 : false;
}
console.log(returnIndex($('input'));