使用jquery中的next()函数获取下一个文本框

时间:2011-07-22 16:51:55

标签: jquery

我正在尝试编写一些Jquery代码,它将获得下一个类“in”的文本框的值。我在这里的代码不起作用,值始终未定义。我认为我正在使用next()函数,但我不确定,是否有人有任何输入?

<!DOCTYPE html>
<html>

<body>
<input type="text" class="mm" />
<br>
<input type="text" class="in" />  

$(document).ready(function() {
    $("input").focus(function() {

        var value = $(this).next(".in").val();
        if (value) {
            alert(value);
        }

    });
});   

  </script>
 </body>
</html>

3 个答案:

答案 0 :(得分:0)

您需要发布您的HTML。 Next获取下一个兄弟,所以它在很大程度上取决于html结构 - 它可能只需要你添加一个父进来到达所有文本框的父节点。

答案 1 :(得分:0)

$(this).next(".in")只会返回一个值,如果下一个元素的类为“in”,而不是查看第一个带有“in”类的文本框的所有兄弟节点。 试试$(this).nextAll(".in:eq(0)")

答案 2 :(得分:0)

您提供HTML的示例实际上有效。你可以在这里看到它:http://jsfiddle.net/jfriend00/RGsDq/。根据你的评论,听起来你想要第一个拥有“in”类的兄弟,无论是否是下一个兄弟。 .next()只检查下一个兄弟。如果你想要第一个拥有“in”类的兄弟,即使它不是下一个兄弟,你可以做以下任何一个:

$(this).nextAll(".in").first().val();           // next sibling with class ".in"
$(this).parent().find(".in").first().val();     // next child of parent with class ".in"

您可以在此处看到这两个选项中的第一个:http://jsfiddle.net/jfriend00/4VwAN/