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



我有这个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只对兄弟姐妹起作用,所以你需要回到父母,到父母的兄弟姐妹,然后到孩子。

相关内容

  • 没有找到相关文章

最新更新