2010-02-24 32 views
4

我想計算具有類名「items」並具有「style = display:none」屬性的div。具有display:none屬性的jQuery計數div

<div id="skills"> 
<div class="items" style="display:none">1</div> 
<div class="items">2</div> 
<div class="items">3</div> 
<div class="items" style="display:none">4</div> 
<div class="items" style="display:none">5</div></div> 

輸出應該是'3'。

============================================== =============

除了問題:

<div id="skills1"> 
<div class="items" style="display:none">1</div> 
<div class="items">2</div> 
<div class="items">3</div> 
<div class="items" style="display:none">4</div> 
<div class="items" style="display:none">5</div></div> 

<div id="skills2"> 
<div class="items" style="display:none">1</div> 
<div class="items" style="display:none">2</div> 
<div class="items" style="display:none">3</div> 
<div class="items" style="display:none">4</div> 
<div class="items" style="display:none">5</div></div> 

輸出應爲 '3' & '5'。

回答

16

原文:

var count = $('div.items:hidden').length; 

新:

var counts = {}; 
$('#skills1,#skills2').each(function() { 
    counts[$(this).attr('id')] = $('div.items:hidden', $(this)).length; 
} 

counts對象將是:

{ skills1 : 3, skills2 : 5 } 

$('#skills1,#skills2').each(function() { 
    if ($('div.items:hidden',$(this)).length == 0) { 
     $(this).hide(); 
    } 
}); 
(?)

如果你給「容器」一個類作爲選擇器,它會更容易。然後,您可以簡單地將#skills1,#skills2替換爲類選擇器,而不是使函數依賴於DIV的名稱,這意味着如果添加另一個容器(例如skills3),則不必更改它。您只需確保爲該容器提供正確的課程。

+0

thanks tvanfosson!..但我有一點點複雜的問題。我將如何動態地做到這一點?請。看到額外的問題..再次提前感謝.. – scoohh 2010-02-24 16:11:02

+0

在您的答案: var count = $('div.items:hidden')。length; 如果'count'等於0並且其父ID是'skills1',那麼ID爲'skill1'的div將顯示'none'。 – scoohh 2010-02-24 16:14:49

+0

@scoohh - 你想隱藏DIV的時候的數量包含在其中的隱藏元素是0還是當隱藏物品的數量等於物品的數量?你最近的評論讓我感到困惑。 – tvanfosson 2010-02-24 16:18:29

相關問題