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

我想find给定元素的第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() 

任何帮助,将不胜感激

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

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

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

使用:

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

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

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

然后用它作为:

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

父母()返回一个列表,所以这个工作:

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