jquery Auswahl von Elementen ohne sichtbare Kinder

8

Hier ist mein Ziel: tue etwas für ein Element, ein <optgrooup> , wenn alle seine Kinder unsichtbar sind.

Mein Code unten umreißt das in rot, wenn es irgendwelche unsichtbare Kinder hat. Aber ich möchte das nur, wenn alle die Kinder unsichtbar sind. Wenn das Element sichtbare untergeordnete Elemente enthält, markieren Sie es nicht.

Wie kann ich den jQuery-Selektor dafür anpassen?

Vielen Dank im Voraus.

%Vor%

Screenshot des Bildes hier: Ссылка

    
Glen 08.05.2009, 19:25
quelle

6 Antworten

12

Angenommen, Sie möchten Elemente ohne untergeordnete Elemente ausschließen:

%Vor%

Arbeitsbeispiel.

UPDATE: Das hat viel bessere Leistung als meine ursprüngliche Antwort:

%Vor%     
Jed Schmidt 08.05.2009 19:39
quelle
2

Das hat viel bessere Leistung als meine ursprüngliche Antwort :

%Vor%     
Jed Schmidt 08.05.2009 20:07
quelle
1

Wie wäre es mit zwei Zeilen dafür? Eine, um es für jedes einzelne Element einzuschalten, und eine, um es für jeden mit einem sichtbaren Kind wieder auszuschalten?

%Vor%     
Samir Talwar 08.05.2009 19:39
quelle
1

Der Kredit geht an Jed Schmidt . Der folgende Code funktioniert in IE8.

Beachten Sie, dass IE8 die <option> Elemente trotz des display: none Stils nicht wirklich versteckt. Auch IE8 scheint border styles für <optgroup> elements nicht zu akzeptieren.

Arbeitsbeispiel: Ссылка (Bearbeitbar über Ссылка )

%Vor%     
brianpeiris 23.05.2017 12:09
quelle
1

// Antwort auf Frage, die CSS wie gewünscht ändert

%Vor%

// entferne leere optgroup-Beispiele

%Vor%     
David Lefkon 21.04.2011 16:04
quelle
0

Sie müssen ein Array von allen vergleichen: visible vs.: hidden

hier ist ein Pseudocode

%Vor%     
JP Silvashy 08.05.2009 19:32
quelle