jQuery DOM 遍历 .prev()

标签 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/

最佳答案

您可以更改为这一行:

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

因为你的按钮和其他输入处于同一级别,或者我会说它们有相同的父级,所以它们是 sibling 。

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

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

关于jQuery DOM 遍历 .prev(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33473691/

相关文章:

Javascript 获取大括号内的子字符串值

javascript - 如何使用 jQuery Validate 插件验证电子邮件

javascript - jQuery 设置 `background-size` 不起作用

jquery - 如何访问放入可排序的可拖动元素的ID

javascript - 如何将 Canvas 元素聚焦在对象标签内?

javascript - 带有 rowspan 调整大小和困惑 UI 的 dataTable 标题

javascript - 单击表行(使用 Bootstrap )时如何使用模式显示数据?

javascript - input[type=date]格式值在php中动态生成

jQuery - 切换选择所有复选框

java - 如何使用 Jquery 或 Javascript 解析 json