2013-07-26 18 views
1

每個第一li元素,我想指望用類名稱每個第一li元素,這裏是我的代碼:jQuery的計數與類名

<div> 
<ul> 
    <li><a class="active" index="0" href="#">selector1</a></li> 
    <li><a class="" index="1" href="#">selector1</a></li> 
    <li><a class="" index="2" href="#">selector1</a></li> 
</ul> 
<ul> 
    <li><a class="" index="0" href="#">selector1</a></li> 
    <li><a class="active" index="1" href="#">selector1</a></li> 
    <li><a class="" index="2" href="#">selector1</a></li> 
</ul> 
<ul> 
    <li><a class="active" index="0" href="#">selector1</a></li> 
    <li><a class="" index="1" href="#">selector1</a></li> 
    <li><a class="" index="2" href="#">selector1</a></li> 
</ul> 
</div> 

JS:

var countz = $('div ul').filter(function(){ 
    return $(this).find('.active:first').length; }).length; 

alert(countz); 

,但我的結果表明,3。它應該是2根據這個HTML任何想法?謝謝!

這裏搗鼓:http://jsfiddle.net/Tf7g8/

回答

2

什麼是這樣的:

var countz = $('div>ul>li:first-child>.active').length; 

alert(countz); 

剛剛計算所有a標籤有類active並且是li元素的孩子,他們自己是第一個孩子。似乎更簡單。

工作示例這裏:http://jsfiddle.net/GRcpL/2/

0

我會做這種方式。

var countz = $('div ul').filter(function(){ 
    return $(this).find('li:first').has('.active').length; 
}).length; 

alert(countz); 
0

或者使用Size()nth-child()(如果使用jQuery的V1.7下面

var active_li_count = $('li:nth-child(1) .active').size(); 
alert(active_li_count); 

小提琴:http://jsfiddle.net/cQKhv/

注:.size()方法從jQuery 1.8開始不推薦使用。改爲使用 .length屬性。