我有这个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]
返回未定义,而不是输入选择器,我不能在它上使用focus()
你知道这里发生了什么吗?由于
您可以替换:
$(that).nextAll("input")[0].focus();
和
$(that).parent().next(".phone").find("input").focus();
正如Kevin B所说,.next
和.nextAll
只对兄弟姐妹起作用,所以你需要回到父母,到父母的兄弟姐妹,然后到孩子。