使用jQuery将随机选择的类添加到HTML标记

我需要做的是在我的菜单中我想在每次函数启动时添加其中一个类(下面列出的)以及完全随机的顺序(页面加载)

这是我的HTML

 

这就是我希望每次添加不同类别的顺序时的结果

  

下面我列出了所有课程。

 .li-one .li-two .li-three .li-four .li-five 

我花了很多时间试图弄明白没有结果

非常感谢您的帮助

类似于以下内容:

 function randOrd() { return (Math.round(Math.random())-0.5); } $(document).ready(function() { var klasses = [ 'li-one', 'li-two', 'li-three', 'li-four', 'li-five' ]; klasses.sort( randOrd ); $('#menu ul li a').each(function(i, val) { $(this).addClass(klasses[i]); }); }); 

使用jQuery你可以做类似的事情

 var classes = ['li-one', 'li-two', 'li-three', 'li-four', 'li-five']; function randomizeList(listObj) { $(listObj).each(function() { $(this).addClass(classes[Math.Random()*classes.size]); }); } 

我想看看http://blog.mastykarz.nl/jquery-random-filter/

 for (c in ['li-one', 'li-two', 'li-three', 'li-four', 'li-five']) // select the next link w/oa class starting with "li" $("a:not(class^=li):random").addClass(c); 

这将导致类名比普通随机函数更好地改组:

 Array.prototype.shuffle = function (){ var i = this.length, j, temp; if ( i == 0 ) return; while ( --i ) { j = Math.floor( Math.random() * ( i + 1 ) ); temp = this[i]; this[i] = this[j]; this[j] = temp; } }; var classes = new Array('one', 'two', 'three', 'four', 'five'); classes.shuffle(); var menu = $('#menu ul li'); for (var i = 0; i < menu.length; i++) { menu.eq(i).children('a').addClass('li-'+classes[i]); }