2009-12-10 38 views
1

不知道如何使用jQuery做到這一點,但我試圖返回具有特定類的div數量的個性化......jquery - 在數組中使用ID計數div?

<div id="main"> 
<div class="contact">Data</div> 
<div class="margin">Margin</div> 
<div class="contact">Data</div> 
<div class="break">Break</div> 
<div class="break">Breaker</div> 
<div class="nap">Nap</div> 
</div> 

而且,我想返回的div用計數一種接觸,休息和小睡,以便計數返回:5 ...實際上,將會有大約30個類,我寧願不必爲每個類寫出if語句...所以,希望有一種方法可以構建一個數組,然後檢查該類是否在數組中?

回答

6
var count = $("div.contact, div.break, div.nap", "#main").length; 

正如評論所說,如果你需要這是基於關閉數組:

​​
+1

+1。如果它必須是一個數組,你可以使用連接輕鬆地從數組中構建選擇器。這是最快的方法。 – 2009-12-10 20:45:18

1

如果使用數組是很重要的:

var classes = ['contact', 'break', 'nap']; 
//... 
var count = 0; 
$.each(classes, function(i, c) { count += $('div.' + c, '#main').length; }); 
alert(count); 
0

喬納森桑普森有最好的答案,但不是:

var count = $("div.contact, div.break, div.nap", "#main").length; 

我這樣做:

每個div的你在陣列中需要,可以添加分組類:

<div id="main"> 
    <div class="contact grouped">Data</div> 
    <div class="margin">Margin</div> 
    <div class="contact grouped">Data</div> 
    <div class="break grouped">Break</div> 
    <div class="break grouped">Breaker</div> 
    <div class="nap grouped">Nap</div> 
</div> 

然後使用這個js。

var count = $("#main .grouped").length; 

這樣,您只能在一個地方添加或移除元素,並且可以更好地控制異常以及組中的元素。