2016-05-23 23 views
1

Wenn ich wie unten einen Code haben, enthält ein Element unter 3 SchichtenJQuery: Erste Eltern Eltern

<span class="dropdown test1"> 
    <span class="test2" type="button" data-toggle="dropdown">hello</span> 
    <ul class="dropdown-menu test3" style="min-width:100px;text-align:centerz-index:999;"> 
     <li class="CTHK-{{feedId}} test4" data-url="{{url}}" style="width: 100%; height: 100%;margin-left: 0px !important; margin-top: 0px !important;margin-bottom: 0px !important;"><a href="javascript:void(0)">Btn list</a></li> 
     <div class="divider"></div> 
    </ul> 
</span> 

ich will es das Wort „Hallo“ im Inneren Klasse test2 trösten

ich versuchte console.log($(this).parent().parent(".test2").text());

ich muss diese verwenden, weil ich für Schleife bin mit Daten genarate wenn ich eine Konsistenzklasse setzen sie nicht identifizieren kann, die die die

+1

Verwenden '.closest (SELECTOR)' statt .. – Rayon

+0

So $ (this) .closest (“. Test2"). Text() ;? – anson920520

+1

Probieren Sie es aus .. Ich habe keine Ahnung, was "das" Sie meinen ... – Rayon

Antwort

1

verwenden ein

$(this).parent().parent().find(".test2").text(); 
1

JQuery ist .closest(selector) ist was du brauchst. Ihr Selektor kann ".test2" sein und Sie können nach Auswahl des gewünschten Elements auf .text() heften.

Beschreibung: Für jedes Element in dem Satz, erhält das erste Element, das die Wähler übereinstimmt, indem das Element selbst zu testen und im DOM-Baum durch seine Vorfahren durchlaufen werden.

Natürlich sollten Sie sicherstellen, dass Ihr Ausgangspunkt tatsächlich ein Nachkomme Ihres Zielpunkts in der Datenstruktur ist, in der Sie navigieren möchten. In dem angegebenen Beispiel hat <span class="test2">hello</span> keine Enkel für Sie von beginnen. Sie könnten zwei Ebenen nach oben gehen und dann z. mit find(".test2").