如何在jquery中找到第一个父元素

时间:2012-06-27 13:16:42

标签: javascript jquery html dom

考虑下面的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()这样的任何方法。有没有我不知道的?或者它出于某种原因不存在?

3 个答案:

答案 0 :(得分:27)

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

将为.element 的所有家长提供(包括htmlbody

<强> DEMO

要查找任何特定的父级,请假设container1然后

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

<强> DEMO

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

答案 1 :(得分:14)

只需使用

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

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

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

答案 2 :(得分:1)

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

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

希望,对某人有帮助。