Jquery - wähle unmittelbaren Li-Text aus, ohne den Text von children ul auszuwählen

8

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:

  • Erstes Element der zweiten Ebene
  • Zweites Element der zweiten Ebene
  • Drittes Element der zweiten Ebene

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.

    
Froilan 12.08.2010, 17:46
quelle

3 Antworten

4

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%     
Froilan 13.08.2010 03:14
quelle
1

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:

%Vor%

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:

%Vor%

Weitere Informationen:

Sarfraz 12.08.2010 17:50
quelle
0

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%     
Michael Erickson 29.03.2012 18:52
quelle