: leerer Selektor am tbody-Tag

7

Gegeben die folgende Tabelle:

%Vor%

Unter Verwendung von jQuery wird Folgendes als false ausgewertet:

%Vor%

Ich möchte CSS verwenden, um den Inhalt als Nachricht festzulegen:

%Vor%

Kann der :empty Selektor auf tbody angewendet werden?

    
Darbio 30.07.2013, 05:44
quelle

7 Antworten

18

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%     
BoltClock 30.07.2013, 05:46
quelle
3

In diesem Fall enthält tBody Leerzeichen als Inhalt, also funktioniert es nicht

: leer

  

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.

    
Arun P Johny 30.07.2013 05:45
quelle
2

Wenn Sie :empty verwenden möchten, müssen Sie die tbody-Syntax wie folgt angeben:

%Vor%

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:

%Vor%

Referenz: Wie überprüfe ich, ob ein HTML-Element vorhanden ist ist leer mit jQuery?

    
Code Lღver 30.07.2013 05:47
quelle
2

Das <tbody> ist nicht leer, da es Leerzeichen enthält. Sie müssen eine Filterfunktion verwenden, um das zu umgehen:

%Vor%

Oder zähle die Anzahl der Kinder:

%Vor%     
Blender 30.07.2013 05:50
quelle
1

Zu Ihrer Information: Sie können den folgenden jQuery-Selektor verwenden, um eine Tabelle mit einem leeren tbody auszuwählen, ohne von der ID des Tabellenelements abhängig zu sein:

%Vor%     
Niels R. 09.01.2014 14:41
quelle
0

Verwenden Sie

%Vor%

und dann überprüfen Sie, was Sie bekommen.

    
kul_mi 30.07.2013 05:48
quelle
-1

Überprüfen Sie dies:

%Vor%     
Abhishek Jain 30.07.2013 05:49
quelle