12

考虑下面的html -

<div class="container1">
   <div class="container2">
      <div class="container3">
         <div class="container4">
             <div class="element">
             ...
         </div>
      </div>
   </div>
</div>

如果我想获取<div class="element">元素并且我参考了container1. 在 jquery 中,我所做的是,

$(".container1").find(".element")

代替 -

$(".container1").children().children().children().find(".element")

当我引用任何父元素时,这是查找任何子元素的过程。但是,当我引用子元素并想要获取父元素时,每次我必须上一级 -

$(".element").parent().parent().parent().parent()

而我不能这样做——

$(".element").findParent()

我在 jquery 中没有遇到任何像 findParent() 这样的方法。有没有我不知道的?还是由于某种原因它不存在?

4

3 回答 3

28
$(".element").parents();

将给.element(包括htmlbody)的所有父母

演示

要找到任何特定的父母,假设container1然后

$('.element').parents('.container1')

演示

jQuery.parents()通常会找到所有父母,但如果你传递了一个选择器,那么它会搜索它。

于 2012-06-27T13:18:09.363 回答
14

只需使用

$(".element").closest('#container1');

如果没有id找到那个祖先,那么

$(".element").closest('#container1').length将会0

于 2012-06-27T13:18:01.413 回答
1

为了亲自获得第一个父母,我使用以下结构:

var count_parents = $(".element").parents().length;
$(".element").parents().eq(count_parents - 1);

希望对某人有所帮助。

于 2017-08-14T13:47:51.343 回答