thomaskekeisen.de

Aus dem Leben eines Bildschirmarbyters

Leere Elemente ohne Kinder finden

Für meinen Artikel Javascript-Snippet: Schriftarten und -Schnitte auf Webseite anzeigen habe ich nach einer Lösung gesucht, um mit der JavaScript-Bibliothek jQuery alle DOM-Elemente zu finden, die nur einen Text und keine Unter- respektive weitere DOM-Elemente enthalten. Da ich nicht wie sonst sofort fündig wurde, hier eine kurze Erklärung.

Für die Lösung muss der :empty-Selektor mit dem :has und :not-Selektor kombiniert werden. Konkret wird der :not-Selektor zwei Mal benötigt und in Reihe geschaltet. Alle nicht-leeren Elemente können mit dem Selektor*:not(:empty) gefunden werden. Da somit aber auch alle Elemente gefunden werden die statt oder neben Text auch weiteres DOM enthalten, können diese mit dem Selektor:not(:has(*)) wieder entfernt werden. Der komplette jQuery-Code sieht also wie folgt aus:

            
                $('*:not(:empty):not(:has(*))');
            
        

Teilen

Kommentare