2011-04-06 34 views
1

我有以下結構。如何添加隨機類到鏈接列表

<ul id="dyn_nav"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">Services</a></li> 
    <li><a href="#">Contact</a> 
     <ul class="submenu"> 
      <li><a href="#">Home</a></li> 
      <li><a href="#">Services</a></li> 
      <li><a href="#">Contact</a></li> 
     </ul> 
    </li> 
</ul> 

li(ul#dyn_nav> li)的第一級應該從給定列表中獲得隨機類。

類是藍色,綠色,洋紅色,青色,紅色等..

我想使這個菜單動態色彩不固定的。

像一個可以有第一個菜單顏色綠色,另一個有藍色。這只是我的想法。

jQuery請。

+0

哈哈!這是一個問答網站大聲笑! – 2011-04-06 08:34:44

+0

@bolt我不知道如何添加隨機類。所以還沒有嘗試過。 – 2011-04-06 08:40:18

回答

7
$(document).ready(function() { 
    var classes = ['blue', 'green', 'magenta', 'cyan', 'red']; 
    $('ul#dyn_nav>li').each(function(i) { 
     $(this).addClass(
      classes[Math.floor(Math.random()*classes.length)]); 
    }); 
}); 

我還添加了ul#dyn_nav>li>a { color: inherit; }樣式表使顏色會影響到li的鏈接,而不僅僅是子彈。

+0

一些時間課程重複:( – 2011-05-26 14:04:53

+0

那麼,在這種情況下,有六個菜單項和只有五種顏色,所以至少有一個必須重複。如果你有至少與項目一樣多的類,那麼你可以使用將它們隨機排序並將它們依次應用於項目。 – 2012-06-09 05:01:39

0

Dutow是對的。 @Wazdesign:您也可以嘗試這個片段:

function rand(){ return (Math.round(Math.random())-0.5); } 
    var colors = new Array('blue','yellow','red','green');//you can add more class here 
    var init = colors.sort(rand); 
    $('ul li').each(function(i,el){ 
    $(el).addClass(init[i]); 
    }); 
+0

我不認爲排序(rand)是一個非常好的主意;取決於排序的實現,這可能是一個無限循環。 – 2011-04-06 09:25:15