首页 > 解决方案 > 使用 jQuery 查找上一个兄弟元素

问题描述

在下面的 HTML 中,我想在类“div-class”的 div 之前的第一个同级 P 元素中添加一个类。

<p>hello</p>
<p>hello</p> -> add class to this element
<div><p>test</p></div>
<div class="div-class"></div>

这不起作用:

jQuery(".div-class").prev("p").addClass("p-class");

标签: javascriptjquery

解决方案


prev()方法仅选择紧接在该元素之前的兄弟元素,因为您使用的是p选择器,它不会选择任何东西,因为没有任何p紧接在该元素之前的标签。

您可以使用prevAll()方法获取元素之前的所有兄弟元素,并使用方法first()获取集合中最近的一个。

jQuery(".div-class").prevAll("p").first().addClass("p-class");
.p-class {
  color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>hello</p>
<p>hello</p>
<div>
  <p>test</p>
</div>
<div class="div-class"></div>
This doesn't work:


推荐阅读