如何使用nextAll使用jquery /查找所有输入

时间:2013-01-11 19:20:09

标签: javascript jquery html input focus

我有这个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()

任何想法在这里发生了什么?感谢

1 个答案:

答案 0 :(得分:3)

您可以替换:

$(that).nextAll("input")[0].focus();

类似

$(that).parent().next(".phone").find("input").focus();

正如Kevin B所说,.next.nextAll只对兄弟姐妹有用,所以你需要回到父母的身边,再回到父母的兄弟姐妹身上,然后再回到孩子身上。