So finden Sie den n-ten Elternteil eines Elements mit jquery

Lesezeit: 1 Minute

Benutzer-Avatar
Rakhitha Nimesh

Ich möchte das n-te übergeordnete Element eines bestimmten Elements finden und auf die Attribute des übergeordneten Elements zugreifen.

<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>

Ich möchte auf das 3. übergeordnete Element von element1 zugreifen, ohne es zu verwenden

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

Jede Hilfe wäre willkommen

  • Mögliches Duplikat von How do I get the n-th level parent of a element in jQuery?

    – Frédéric Hamidi

    18. November 2011 um 9:41 Uhr


Sie können verwenden .parents() und .eq():

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

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

Eltern() gibt eine Liste zurück, also funktioniert das:

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

verwenden:

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

  • Wenn Sie die ID kennen, würde es keinen Sinn machen, sie zu verwenden closest

    – Richard Dalton

    18. November 2011 um 9:36 Uhr

  • Danke. Dieser Code ist gut genug für das aktuelle Beispiel. Aber ich möchte ihn dynamisch wie 3. Elternteil oder 4. Elternteil durchsuchen

    – Rakhitha Nimesh

    18. November 2011 um 9:38 Uhr

  • @Richard Dalton, wie wäre es mit $(‘#element1’).closest(‘#parent1’).hasClass(‘whatever’);

    – tmatyo

    2. April 2015 um 8:03 Uhr


Benutzer-Avatar
gion_13

Sie könnten ein kleines Plugin erstellen, um sich darum zu kümmern:

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

und dann verwenden Sie es als:

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

1273770cookie-checkSo finden Sie den n-ten Elternteil eines Elements mit jquery

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy