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

Rak*_*esh 44 navigation jquery dom 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>
Run Code Online (Sandbox Code Playgroud)

我想在不使用的情况下访问element1的第三个父元素

$('#element1').parent().parent().parent()
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

Ric*_*ton 63

你可以使用.parents().eq():

$('#element1').parents().eq(2);
Run Code Online (Sandbox Code Playgroud)

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


小智 8

parents()返回一个列表,因此这有效:

$('#element1').parents()[2];
Run Code Online (Sandbox Code Playgroud)


gio*_*_13 6

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

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

然后将其用作:

$('#element1').nthParent(3);
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 5

使用:

$('#element1').closest('#parent1');
Run Code Online (Sandbox Code Playgroud)

  • 如果您知道ID,那么使用`nearest`就没有任何意义 (9认同)