2010-07-25 50 views
2

我想弄清楚如何计算div栏内“bar”容器的数量,然后将该数字添加为类。例如,在第一项类=“杆3”,而第二类=“栏2”使用jquery计算每个容器中div的数量

<div class="item"> 
    <div class="foo"></div> 
    <div class="bar"> 
    <div class="slide"></div> 
    <div class="slide"></div> 
    <div class="slide"></div> 
    </div> 
</div><!-- /item --> 

<div class="item"> 
    <div class="foo"></div> 
    <div class="bar"> 
    <div class="slide"></div> 
    <div class="slide"></div> 
    </div> 
</div><!-- /item --> 
+0

只是注意 - 如果你打算在课堂上使用数字样式是行不通的容器。 CSS类名不能(或以数字开头)。 – Pat 2010-07-25 18:48:16

+0

我知道。这只是简化的代码。 – Alex 2010-07-25 18:55:27

回答

2
$('#item').each(function(i, elem){ 
    var $this = $(this), 
     len = $(this).find('.bar').children('div').length; 

    $this.addClass('bar ' + len); 
}); 

虽然书面方式本我意识到,要使用多个IDs名为item。这是无效的HTML markup和jQuery可能只会返回第一次发生。用类替换ID并使用$('.item')

1
$.each($(".item"), function(i, d) { 
    var count = $(d).find(".bar div").length; 
    $(d).addClass("bar_" + count); 
}) 
+0

no'.count()'在jQuery中。使用'.size()'或直接'.length'属性。 – jAndy 2010-07-25 18:49:59

+0

哎呀,只是修复它。 – 2010-07-25 18:51:39

0

在jQuery的1.4,你可以使用函数作为.addClass()参数:

$('.bar').addClass(function() { 
    return $(this).children('div').length; 
});