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

时间:2011-11-18 09:32:26

标签: jquery dom navigation parent

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

<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的第3个父元素
$('#element1').parent().parent().parent()

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:58)

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

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

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

答案 1 :(得分:6)

你可以制作一个小插件来处理:

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

然后将其用作:

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

答案 2 :(得分:6)

parents()返回一个列表,因此可行:

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

答案 3 :(得分:5)

使用:

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