Aquí está mi objetivo: hacer algo sobre un elemento, un <optgrooup>
, si todos sus hijos son invisibles.selección jQuery de elementos que no tienen hijos visibles
Mi código a continuación describe el en rojo si tiene cualquier niños invisibles. Pero quiero hacerlo solo si todos los niños son invisibles. Si el elemento tiene hijos que están visibles, no lo resalte.
¿Cómo puedo ajustar el selector de jQuery para hacer eso?
Gracias de antemano.
<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>
Captura de pantalla de la imagen aquí: http://img144.imageshack.us/img144/556/selectexample.gif
¿Qué hay de comparando las longitudes de las matrices entre el chi invisible y el total ldren? –