Ecco il mio obiettivo: fare qualcosa su un elemento, un <optgrooup>
, se tutti i suoi figli sono invisibili.selezione jquery di elementi senza figli visibili
Il mio codice di sotto delinea in rosso se ha qualsiasi bambini invisibili. Ma voglio farlo solo se tutti i i bambini sono invisibili. Se l'elemento ha bambini visibili, non evidenziarlo.
Come posso modificare il selettore jQuery per farlo?
Grazie in anticipo.
<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>
Schermata di immagine qui: http://img144.imageshack.us/img144/556/selectexample.gif
Che dire confrontando le lunghezze degli array tra l'invisibile e il totale ldren? –