jquery Auswahl von Elementen ohne sichtbare Kinder

Hier ist mein Ziel: etwas tun, auf ein element, ein <optgrooup>, wenn alle seine Kinder sind unsichtbar.

Mein code unten beschreibt die in rot, wenn es alle invisible children. Aber ich will dies nur tun, wenn alle die Kinder unsichtbar sind. Wenn das element hat keine Kinder, die sichtbar sind, dann nicht markieren.

Wie kann ich Sie optimieren die jQuery-Selektor zu tun?

Vielen Dank im Voraus.

<select multiple="multiple" name="availableInstanceId" id="availableInstanceId">
<optgroup label="Option Group 1">
   <option >visible item 1</option>
   <option >visible item 2</option>
</optgroup>
<optgroup label="Option Group 2 - Should be highlighted">
   <option style="display:none;">invisible A</option>
   <option style="display: none">invisible B</option>
</optgroup>

<optgroup label="Option Group 3 - Should not be highlighted">
  <option >visible C</option>
  <option style="display: none">invisible D</option>
</optgroup></select>

<script type="text/javascript">
var filterOptions = function(e) {
  //Goal: highlight the <optgroup>'s that have *only* invisible children
  $( '#availableInstanceId > * > *:hidden').parent().css("border","3px solid red");
} 
$(document).ready(function() {
  filterOptions();
});
</script>

Screenshot von dem Bild hier: http://img144.imageshack.us/img144/556/selectexample.gif

  • Was den Vergleich der Längen des arrays, zwischen der unsichtbaren und der Gesamt-Kinder?
InformationsquelleAutor Glen | 2009-05-08
Schreibe einen Kommentar