web-dev-qa-db-fra.com

Comment trouver le nième parent d'un élément à l'aide de jquery

Je veux trouver le nième élément parent d'un élément donné et accéder aux attributs de 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>

Je souhaite accéder au 3e élément parent de element1 sans utiliser

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

Toute aide serait appréciée

40
Rakhitha Nimesh

Vous pouvez utiliser .parents() et .eq():

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

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

58
Richard Dalton

Vous pouvez créer un petit plugin pour vous en occuper:

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

puis l'utiliser comme:

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

parents () renvoie une liste, donc cela fonctionne:

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

utilisation:

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