jQuery DOM遍历.prev()

时间:2015-11-02 08:45:06

标签: jquery

我正在尝试使用jQuery获取输入值。在我的真实代码中,我有更多的输入和按钮,因此代码如:.middle()将无效!我需要从btn向上遍历。

HTML

<p>Help</p>
<input type="text" />
<input type="text" class="findMe" />
<input type="text" />
<button type="submit" class="btn">Alert</button>

JS

$(document).on('click', '.btn', function(){
  //text = $(this).prev('.findMe').val();
  //text = $(this).closest("input").find(".findMe").val();
  alert(text);
})

我搜索过,我确实阅读了文档,但我无法让它工作。警报说“未定义”。

奇怪的是,我有其他非常接近的代码,完美无缺。

那么,出了什么问题?

FIDDLE
https://jsfiddle.net/6gbm8pgg/

2 个答案:

答案 0 :(得分:4)

您可以更改为此行:

$(this).siblings(".findMe").val();

因为您的按钮和其他输入处于同一级别,或者我会说他们有相同的父级,所以他们是兄弟姐妹。

虽然有更多方法可以做同样的事情,但是:
(不推荐)

$(this).parent().find(".findMe").val();
$(this).prevAll(".findMe").val();
$(this).prev().prev(".findMe").val();

答案 1 :(得分:2)

或者:

$(this).prevAll(".findMe").val();

因为 prev()函数仅查看最近的前一个元素,兄弟姐妹()会查找所有上一个和所有下一个元素