Javascript 使用jquery选择上一个元素?

Javascript 使用jquery选择上一个元素?,javascript,jquery,frontend,Javascript,Jquery,Frontend,正在尝试使用jquery选择上一个h4。基本上我有这样的东西: <h4>THING I WANT 1</h4> <button>One</button> <button>Two</button> <button>Three</button> <h4>THING I WANT 2</h4> <button>One</button> <button&

正在尝试使用jquery选择上一个h4。基本上我有这样的东西:

<h4>THING I WANT 1</h4>
<button>One</button>
<button>Two</button>
<button>Three</button>

<h4>THING I WANT 2</h4>
<button>One</button>
<button>Two</button>
<button>Three</button>

<h4>THING I WANT 3</h4>
<button>One</button>
<button>Two</button>
<button>Three</button>
这适用于第一个按钮(我猜是因为它紧跟在h4之后),但不适用于后续按钮
prevAll
不是答案(因为它选择了所有以前的H4),所以我有点困惑


使用$(selector).filter()的逻辑,我觉得我的方法是合理的。非常感谢您的帮助。如果有帮助的话,我很乐意将上面的内容用div或其他形式包装起来。

prevAll
确实是答案,但您必须选择集合中的第一个元素,否则所有以前的
h4
都将包括在内:

$('button')。在('click',function()上{
const$h4s=$(此).prevAll(“h4”);
console.log($h4s[0].textContent);
});

我想要的东西
一个
两个
三
我想要的东西2
一个
两个
三
我想要的东西3
一个
两个

三个
easist将使用
prevAll

HTML:

  <h4>THING I WANT</h4>
 <button>One</button>
 <button>Two</button>
 <button>Three</button>

您可以显示更多代码吗?
.prevAll()
是一个答案,假设您希望任何按钮更改您的
。请添加更多的上下文(可能还有代码)来准确解释您要做的事情,以及为什么
.prevAll()
不适合您?prevAll返回所有以前的H4,而不是只返回一个以前的H4。页面上有多个上面看到的H4+按钮集。不知道为什么有人投了反对票,这很好。需要一些额外的线路,但它做到了!这不起作用,因为OP在容器中有多个
h4
s。
  <h4>THING I WANT</h4>
 <button>One</button>
 <button>Two</button>
 <button>Three</button>
$('button').on('click', function()
 {
    var txt= $(this).prevAll('h4').text();
    alert(txt);
 });