web-dev-qa-db-ja.com

jqueryを使用して要素のn番目の親を見つける方法

特定の要素の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の3番目の親要素にアクセスしたい

$('#element1').parent().parent().parent()

助けていただければ幸いです

40
Rakhitha Nimesh

.parents()および.eq()を使用できます。

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

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

58
Richard Dalton

それを処理する小さなプラグインを作成できます。

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

そしてそれを次のように使用します:

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

parents() はリストを返すため、これは機能します。

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

使用する:

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