我有这个HTML:
<div class="field phone">
<input type="text" maxlength="3" />
</div>
<div class="field phone number1">
<input type="text" maxlength="3" />
</div>
<div class="field phone number2">
<input type="text" maxlength="4" />
</div>
然后我正在使用
$(".phone input:not(:last)").keydown(function() {
var that = this;
setTimeout(function() {
if (that.prevValue != $(that).val()) {
that.prevValue = $(that).val();
if ($(that).val().length == $(that).attr("maxlength")) {
$(that).nextAll("input")[0].focus();
}
}
});
});
问题是$(that).nextAll("input")[0]
返回undefined而不是输入选择器而我无法使用focus()
任何想法在这里发生了什么?感谢
答案 0 :(得分:3)
您可以替换:
$(that).nextAll("input")[0].focus();
类似
$(that).parent().next(".phone").find("input").focus();
正如Kevin B所说,.next
和.nextAll
只对兄弟姐妹有用,所以你需要回到父母的身边,再回到父母的兄弟姐妹身上,然后再回到孩子身上。