2012-10-18 86 views
1

我有一個ul li形式的菜單,並且我想爲li的每個子節點添加不同的css類。使用jQuery選擇ul li的每個元素

下面是javascript代碼:

$("#menu").ready(function() { 
    $("#menu ul li").addClass("menu_background1"); 
}); 

CSS:

.menu_background1 { 
    background:#FF0; 
} 

.menu_background2 { 
    background:#66C; 
} 

我應該如何選擇使用jQuery每一個孩子?每個孩子都應該有不同的CSS類..

+0

你也可以從CSS本身這樣做。檢查[CSS的偶數和奇數](http://www.w3.org/Style/Examples/007/evenodd.en.html)規則。 – hjpotter92

+0

id是動態的 – hkguile

回答

0

使用each

$("#menu ul li").each(function(i){ 
    $(this).addClass("menu_background"+(i+1)); 
}); 
+0

每個孩子都有不同的css類,你的代碼只給每個孩子添加一個類 – hkguile

+0

@hkinterview,請檢查更新代碼 –

4

您可以使用addClass的功能:

$(document).ready(function() { 
    $("#menu ul li").addClass(function(i){ 
     return 'menu_background' + (i+1) 
    }); 
}); 

http://jsfiddle.net/5Buh9/

+0

非常好,沒有意識到'addClass()'計算出的屬性可以訪問元素指數。 –

0

嘗試:eq()選擇 -

$("#menu ul li:eq(0)").addClass("menu_background1"); 
$("#menu ul li:eq(1)").addClass("menu_background2");