如何使用jquery查找元素的第n个父元素

Posted

技术标签:

【中文标题】如何使用jquery查找元素的第n个父元素【英文标题】:How to find nth parent of an element using jquery 【发布时间】:2012-01-01 02:14:00 【问题描述】:

我想找到给定元素的第 n 个父元素并访问父元素的属性。

<div id='parent1'><br/>
  <div id='parent2'><br/>
       <span><p id='element1'>Test</p></span><br/>
  </div><br/>
  <div id='parent3'><br/>
       <span><p id='element2'>Test</p></span><br/>
  </div><br/>
</div>

我想在不使用

的情况下访问 element1 的第三个父元素
$('#element1').parent().parent().parent()

任何帮助将不胜感激

【问题讨论】:

How do I get the n-th level parent of an element in jQuery?的可能重复 【参考方案1】:

您可以使用.parents().eq()

$('#element1').parents().eq(2);

http://jsfiddle.net/infernalbadger/4YmYt/

【讨论】:

【参考方案2】:

parents() 返回一个列表,所以这是可行的:

$('#element1').parents()[2];

【讨论】:

【参考方案3】:

使用:

$('#element1').closest('#parent1');

【讨论】:

如果您知道 ID,那么使用closest 没有任何意义 谢谢。这段代码对于当前的例子来说已经足够好了。但我想像第三父或第四父一样动态搜索它 @Richard Dalton,$('#element1').closest('#parent1').hasClass('whatever');【参考方案4】:

你可以做一个小插件来解决这个问题:

$.fn.nthParent = function(n)
    var p = this;
    for(var i=0;i<n;i++)
        p = p.parent();
    return p;

然后将其用作:

$('#element1').nthParent(3);

【讨论】:

以上是关于如何使用jquery查找元素的第n个父元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 从子元素中获取数据以在 xml api 中查找其他子元素?

递归查找链表中的第 n 个到最后一个元素

是否有 jQuery 选择器/方法来查找特定的父元素 n 级?

在jQuery中如何选择某DIV的子元素?

如何使用Jquery获取当前节点的孙节点

C语言一维数组中如何查找指定元素?