Вот моя цель: сделать что-нибудь на элементе, <optgrooup>
, если все его дети невидимы.jQuery выбор элементов без видимых детей
Мой код ниже показывает красный, если он имеет любой невидимых детей. Но я хочу сделать это, только если все дети невидимы. Если элемент имеет какие-либо дочерние элементы, которые не видны, не выделяйте его.
Как я могу настроить селектор jQuery для этого?
Заранее спасибо.
<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>
Скриншот картинки здесь: http://img144.imageshack.us/img144/556/selectexample.gif
насчет сравнивая длины массивов между невидимым и общим чи ldren? –