2011-05-29 80 views
6

我有我的HTML作为如何当另一个div中的所有div都看不见

<div id="main"> 
    <div class="item">String</div> 
    <div class="item">String</div> 
    <div class="item">String</div> 
</div> 

点击每个.item DIV设置DIV单击以display: none检测。如果没有显示div,我希望#main div也设置为display :none

那么如何检测出#main div中的所有div .items都处于使用jQuery的“display:none”模式?

$(document).ready(function() { 
    $('.item').click(function(){ 
     $(this).hide(); 
    }); 
}); 

回答

8

使用:visible选择:

if (! $('#main > div:visible').length) { 
    $('#main').hide(); 
} 
+0

我不知道为什么它不工作但条件检查'if(!$('#main> div:visible')。length)'不起作用。但是,当我将它改为'if($('#main> div:visible')。length == 1)'它就像当我点击最后一个'.item'时一样,我想'#main' div消失。谢谢 :) – ptamzz 2011-05-29 09:26:53