Ich versuche, eine Struktur von verschachtelten HTML-ungeordneten Listen als eine Datenbank für einige Informationen zu nehmen, die ich organisieren und analysieren muss. Ich versuche, die Informationen mit jQuery zu filtern, zu zählen und darzustellen. Ich strebe danach, dass die Listen kein Klassen- oder ID-Attribut haben, so dass sie sehr sauber sind. Nur die Wurzel hätte eine Klasse oder ID wie folgt:
%Vor%Meine Frage ist: Wie kann ich den unmittelbaren Kindtextknoten eines Li auswählen, ohne Text in den Kind- und Enkel-uls dieses li auszuwählen (d. h. seine Unterlisten)? Zum Beispiel, angesichts der obigen HTML-Liste, würde ich gerne in der Lage sein, eine Liste aller Textknoten in der zweiten Ebene zu erstellen:
Oder der gesamte Text von der dritten Ebene ... usw. Das würde es mir erlauben, die Gegenstände auf einer bestimmten Ebene aufzulisten und zu zählen. Das Nächste, das ich je gesehen habe, ist:
%Vor%Aber es ist keine flexible Lösung. Was ist, wenn die Liste viele Ebenen hat, sagen wir sieben? Um die sechste Ebene zu wählen, müssten Sie etwas tun wie:
%Vor%Es muss einen anderen Weg geben, aber ich habe es nicht gefunden. Irgendwelche Vorschläge werden sehr geschätzt.
Wie hier gesagt:
jQuery: Suchen Sie den Text eines Listenelements, das eine verschachtelte ul enthält
"Normale DOM-Methoden ermöglichen den Zugriff auf Textinhalte für nur ein Element"
Also das ist eine Lösung: Dies gibt Elemente der dritten Ebene einzeln aus:
%Vor%Dies gibt Elemente der zweiten Ebene aus:
%Vor%Dies gibt Elemente der ersten Ebene aus:
%Vor% Wenn Sie die zweite li auswählen möchten, zB <li> Second second-level element
, können Sie den >
untergeordneten Selektor mit eq
wie folgt verwenden:
Für die dritte setzen Sie eq
auf 2
, weil die Indizierung von 0
beginnt.
Um sie zu durchlaufen, können Sie each
wie folgt verwenden:
Weitere Informationen:
Eine robustere Methode ist die Verwendung des Traversals "contents" und die Auswahl des Knotens mit dem Typ (3), bei dem es sich um den Knotentyp für ein untergeordnetes Textelement in HTML handelt. Zum Beispiel:
%Vor%Tags und Links html jquery html-lists nested-lists