Comment trouver le nième parent d'un élément en utilisant 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 veux accéder au 3ème élément parent de element1 sans utiliser

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

Toute aide serait appréciée

39
demandé sur Richard Dalton 2011-11-18 13:32:26

4 réponses

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

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

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

57
répondu Richard Dalton 2011-11-18 09:36:04

Vous pourriez faire un petit plugin pour s'en occuper:

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

Et puis l'utiliser comme:

$('#element1').nthParent(3);
6
répondu gion_13 2012-11-14 23:19:03

Parents () renvoie une liste, donc cela fonctionne:

$('#element1').parents()[2];
5
répondu DidThis 2014-10-16 12:20:55

Utilisation:

$('#element1').closest('#parent1');
4
répondu Alex 2011-11-18 09:34:31