Nein, leider verhindern die Einrückungen und Zeilenumbrüche in tbody
in diesem Fall, dass sie jemals :empty
entsprechen. Dies gilt sowohl für CSS als auch für jQuery , wo ich weiß, dass sich :empty
genauso verhält wie jQuerys :parent
, was :not(:empty)
entspricht (mit einer sehr schlechten Namenswahl).
Außerdem können Sie CSS content
nicht hinzufügen Elemente zum DOM . Sie müssen dies in jQuery oder auf der Serverseite tun: Überprüfen Sie, ob tbody
irgendwelche Zeilen hat, und fügen Sie diese Zeile andernfalls hinzu.
Wenn Sie mit jQuery arbeiten, können Sie Folgendes verwenden:
%Vor%In diesem Fall enthält tBody Leerzeichen als Inhalt, also funktioniert es nicht
Die Pseudo-Klasse: empty repräsentiert ein beliebiges Element, das keine untergeordneten Elemente enthält alle. Nur Elementknoten und Text (einschließlich Leerzeichen) sind berücksichtigt. Kommentare oder Verarbeitungsanweisungen haben keinen Einfluss darauf, ob Ein Element gilt als leer oder nicht.
Auch der : Inhalt kann nur mit : vor oder : nach Pseudo Elemente
Die CSS-Eigenschaft content wird mit :: :: before und :: after verwendet Pseudo-Elemente zum Generieren von Inhalt in einem Element. Objekte eingefügt Verwenden der Inhaltseigenschaft sind anonym ersetzte Elemente.
Wenn Sie :empty
verwenden möchten, müssen Sie die tbody-Syntax wie folgt angeben:
Wie Sie definiert haben: leer wird das nicht prüfen, da es eine neue Zeile hat.
Definieren Sie tbody
, wie ich es Ihnen gesagt habe.
Sie können auch .html()
verwenden, um die Bedingung zu überprüfen:
Referenz: Wie überprüfe ich, ob ein HTML-Element vorhanden ist ist leer mit jQuery?
Tags und Links html jquery css jquery-selectors css-selectors