【发布时间】:2010-10-24 21:25:53
【问题描述】:
这是我的目标:在一个元素上做某事,<optgrooup>,如果它的所有子元素都是不可见的。
如果它有 any 个不可见的子级,我的下面的代码用红色勾勒出来。但我只想在 all 孩子不可见的情况下这样做。如果元素有任何可见的子元素,则不要突出显示它。
如何调整 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
【问题讨论】:
-
比较不可见和总孩子的数组长度怎么样?
标签: jquery css-selectors children visible