Ähnlich wie jQuery .closes (), aber Nachkommen durchqueren?
Gibt es eine ähnliche Funktion wie jQuery
.closest()
aber für das Durchlaufen Nachkommen und die Rückkehr erst am nächsten?
Ich weiß, dass es .find()
Funktion, aber es gibt alle möglichen Spiele, nicht am nächsten.
Edit:
Hier ist die definition des nächsten (zumindest für mich):
In Erster Linie alle Kinder sind durchzogen ist, dann kann jede Einzelpersonen, die Kinder durchfahren werden.
Im Beispiel unten gegeben id='2'
am nächsten ist .closest
Nachkommen von id="find-my-closest-descendant"
<div id="find-my-closest-descendant">
<div>
<div class="closest" Id='1'></div>
</div>
<div class="closest" Id='2'></div>
</div>
Finden Sie JSfiddle link.
InformationsquelleAutor der Frage mamu | 2012-01-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend Ihrer definition von
closest
ich geschrieben habe das folgende plugin:InformationsquelleAutor der Antwort Rob W
Wenn du mit "nächste" Abkömmling du meinst das erste Kind, dann können Sie tun:
Oder:
Oder, zum suchen des ersten Vorkommens eines bestimmten element, Sie könnte tun:
Oder:
Wirklich obwohl, brauchen wir eine Feste definition von dem, was "am nächsten Nachkomme" bedeutet.
E. g.
Die
<span>
würde$('#foo').closestDescendent('span')
zurück?InformationsquelleAutor der Antwort James
Können Sie
find
mit der:first
selector:Den oben genannten Zeile befindet sich die erste
<p>
element in den Nachkommen von#parent
.InformationsquelleAutor der Antwort FishBasketGordo
Was soll dieser Ansatz?
Diese "direkt-child" - Selektor für mich funktioniert.
InformationsquelleAutor der Antwort klawipo
Ich denke, dass man zunächst definieren, was "am nächsten" bedeutet. Wenn du meinst die untergeordneten Knoten, die Ihren Kriterien entsprechen, ist der kürzeste Abstand in Bezug auf die elterliche links, dann mit ":" oder ".eq(0)" muß nicht zwangsläufig:
In diesem Beispiel, die zweite ".Ziel"
<span>
element ist "näher" an die "start" -<div>
weil es nur eine elterliche hop entfernt. Wenn es das ist was du meinst mit "am nächsten" sind, würden Sie brauchen, zu finden, die minimale Entfernung in einer filter-Funktion. Die Ergebnis-Liste aus einem jQuery-Selektor ist immer in der DOM-Reihenfolge.Vielleicht:
Das ist sozusagen ein hack, plugin, weil der Art, es baut das result-Objekt, aber die Idee ist, dass Sie ' ve got zu finden, die kürzeste elterlichen Pfad, der alle passenden Elemente, die Sie finden. Dieser code Vorurteile gegenüber Elementen nach Links in den DOM-Baum, weil der
<
überprüfen;<=
würden bias rechts.InformationsquelleAutor der Antwort Pointy
Habe ich gekocht bis keine Umsetzung für positions-Selektoren (Sie brauchen mehr als nur
matchesSelector
) noch:Demo: http://jsfiddle.net/TL4Bq/3/
Gibt es wohl einige bugs, die allerdings nicht getestet haben, es sehr viel.
InformationsquelleAutor der Antwort Esailija
Rob W ' s Antwort nicht ganz der Arbeit für mich. Ich passte es an diese, die nicht funktioniert haben.
InformationsquelleAutor der Antwort Daniel Tonon
Ich würde das folgende einschließen, um das Ziel selbst, ob Sie mit dem selector:
Markup:
InformationsquelleAutor der Antwort ling
Obwohl es ein altes Thema konnte ich nicht widerstehen, die Umsetzung meiner closestChild.
Liefert die erste Gefundene Nachkomme mit mindestens Reisen ( Atem ).
Man rekursive (persönlicher Favorit ), andere mit einer todo-Liste, also ohne Rekursion als jQquery extensions.
Hoffe, dass jemand nutzen.
Hinweis : Die rekursive bekommt, stack overflow und verbesserte ich die anderen, die nun ähnlich auf Vorherige Antwort gegeben.
InformationsquelleAutor der Antwort Eelco
Folgende plugin gibt den N-TEN nächsten Nachkommen.
InformationsquelleAutor der Antwort cole
Ich war auf der Suche für eine ähnliche Lösung (ich wollte am nächsten Abkömmlinge, also die Breite der ersten + alle Spiele, unabhängig von der Ebene in es vorhanden ist), hier ist, was ich am Ende machen:
Ich hoffe, das hilft.
InformationsquelleAutor der Antwort Sharique Abdullah
haben Sie eine Menge von Optionen, aber
$("#parent").children(".child");
ist der Schnellste.Lesen Sie diesen Artikel für details und benchmark
InformationsquelleAutor der Antwort Abou-Emish