Elternteil vs nächsten
Warum funktioniert das:
$('.button_30').click(function(){
$(this).closest('.portlet').find('.portlet_content').text("foo");
});
alle warum funktioniert das nicht:
$('.button_30').click(function(){
$(this).parent('.portlet').find('.portlet_content').text("foo");
});
wo die html sieht ungefähr so aus:
<div class="portlet portlet_30">
<div class="portlet_header portlet_header_30">
header content here
</div>
<div class="portlet_sub_header portlet_sub_header_30">
<input type="text" class="textbox_30" />
</div>
<div class="portlet_content portlet_content_30">
results go here
</div>
<div class="portlet_footer portlet_footer_30">
<input type="button" class="button_30" />
</div>
</div>
<div class="portlet portlet_30">
<div class="portlet_header portlet_header_30">
header content here
</div>
<div class="portlet_sub_header portlet_sub_header_30">
<input type="text" class="textbox_30 />
</div>
<div class="portlet_content portlet_content_30">
results go here
</div>
<div class="portlet_footer portlet_footer_30">
<input type="button" class="button_30" />
</div>
</div>
InformationsquelleAutor der Frage oshirowanen | 2012-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil
parent()
Rückkehr der Eltern (direkte Vorfahren) nurwenn Sie mit dem selector angegeben.Jedoch
nächsten()
suchen alle Vorfahren und die Rückkehr der ersten eine, passt der Selektor.Als Elternteil
button_30
ist eindiv
deren Muttergesellschaft ist diediv
mit der Klasseportlet
dieparent()
Funktion ist, die nicht zusammenpassen und die Rückgabe ein leerer Satz, wo-wieclosest()
ist passt es.Um das set zu komplettieren mit ähnlichen Methoden hier haben Sie
Eltern()
die wieclosest()
aber nicht stop an die erste passende element; es gibt alle Vorfahren, die mit dem selector.InformationsquelleAutor der Antwort Matt
.parent()
sieht nur die unmittelbaren Vorfahren..am nächsten()
sieht auf alle Vorfahren, sowie die Ursprungs-element, und gibt das erste Spiel..Eltern()
sieht auf alle Vorfahren, und gibt alle Treffer.InformationsquelleAutor der Antwort cliffs of insanity
parent()
sieht nur eine Stufe nach oben, können Sie versuchenparents()
Suche alle Weg bissehen Sie die Dokumentation
InformationsquelleAutor der Antwort jorgehmv
Den
closest
[API Ref] - Methode durchläuft die Vorfahren-Baum so weit wie es gehen muss, um zu finden, die einem Selektor entsprechen.Den
parent
[API Ref] Methode betrachtet nur die direkten Eltern.InformationsquelleAutor der Antwort FishBasketGordo
Den
parent
Methode überprüft, nur eine Ebene, die Kette der Elemente, währendclosest
halten die überprüfung der Liste der Eltern, bis eine übereinstimmung gefunden wird (oder html-Tags erreicht wurde).Das äquivalent ist:
InformationsquelleAutor der Antwort iMoses
Weil die einzigen Elemente, die übereinstimmen
.portlet
sind Großelternnicht die Eltern der Elemente, auf denen das Ereignis gebunden ist,InformationsquelleAutor der Antwort Quentin
Da in die zweite Auswahl, die Sie suchen, für die Eltern und diese Funktion "move" in die
DOM
zu dem Knoten, der Vater aber nurone level
enthält die Klasseportlet_footer portlet_footer_30
nicht die Klassen, die Sie vorbei an den Selektor.portlet
arbeiten mitparent
sollten Sie zwei Ebenen in anderen Worten.each time that you're using parent you move one node up
InformationsquelleAutor der Antwort Jorge