jquery nächsten Geschwister
Ich habe versucht, dieses problem gelöst, aber ich kann nicht scheinen, um es herauszufinden, ohne ernsthafte workarounds.
wenn ich den folgenden HTML-Code:
<ul>
<li class="parent"> headertext </li>
<li> text </li>
<li> text </li>
<li> text </li>
<li class="parent"> headertext </li>
<li> text </li>
<li> text </li>
</ul>
Nun, wie kann ich nun wählen Sie einfach die <li>
tags nach dem ersten Eltern - (oder zweite, für diese Angelegenheit)? Grundsätzlich ist die Auswahl eines <li>
mit class="parent"
und die folgenden Geschwister, bis es erreicht einen weiteren <li>
mit der übergeordneten Klasse.
Konnte ich die Umstrukturierung der Liste mit verschachtelten Listen, aber ich will nicht zu tun. Irgendwelche Vorschläge?
InformationsquelleAutor Contra | 2009-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Wurzel des Problems ist, dass die
<li>
s Sie gelten als Eltern-sind wirklich NICHT Eltern der<li>
s "unten". Sind Sie Geschwister. jQuery hat viele, viele Funktionen, dass die Arbeit mit den tatsächlichen Eltern. Ich würde vorschlagen, Befestigung für das markup, wirklich. Es wäre schneller, sauberer, einfacher zu pflegen, und mehr semantisch korrekt als die Verwendung von jQuery zu Schustern was zusammen.ja, tatsächlich, ich dachte die "Eltern" classname war ein bisschen falsch, nachdem ich es gepostet. er nannte Sie "header" könnte besser sein. Ich kann verschachtelte Listen, nachdem alle
Ich denke, langfristig ist das der bessere Ansatz. Ich weiß, Sie wollen nicht, es zu wiederholen nun, aber danken Sie sich später.
Sollte ich erneuert habe es auf den ersten, wenn ich bemerkte, die difficuly auf die Auswahl der Elemente, die ich wollte, da die Arbeit nochmal das markup ist viel weniger Arbeit, dann schlagen meine jquery-code zum Tod :), die Lektion gelernt.
InformationsquelleAutor Mark Hurd
tatsächlich, Sie können ganz einfach tun dies mit nextUntil().
keine Notwendigkeit zu schreiben, Ihre eigenen "nextUntil", da es bereits vorhanden ist.
ex. -
oder wie vorgeschlagen von Vincent -
InformationsquelleAutor The Merovingian
Ich glaube nicht, dass es einen Weg gibt, dies zu tun, ohne mit jedem, da jeder der übrigen Selektoren wählen Sie auch den zweiten Elternteil und die nächsten Geschwister.
haha, das ist eigentlich veery in der Nähe der Problemumgehung im mit atm 🙂 Schande
InformationsquelleAutor tvanfosson
Wird die Schleife sich da jQuery nicht wissen, wie zu stoppen, die auf eine bestimmte Bedingung.
Aber Sie kann besser sein, mit einem wirklich strukturierten Liste für das Eltern/Kinder-Beziehung
InformationsquelleAutor Vincent Robert
ja, ich schrieb eben, dass genau die gleiche code, aber wie du schon erwähnt hast, es nicht aufhören, wenn es erreicht die nächste Klasse=parent
InformationsquelleAutor Ropstah
Ich weiß, das ist ein sehr Alter thread, aber Jquery 1.4 hat eine Methode namens nextUntil, die nützlich sein könnte für diesen Zweck:
http://api.jquery.com/nextUntil/
InformationsquelleAutor kthiagar
InformationsquelleAutor John Guise