我有這樣的代碼的順序(靜態):隨機化一些鏈接
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
我想知道是否可以讀取這些<a>
標籤和使用jQuery隨機的順序,使之將(例如)顯示:
<a href="#">link 1</a>
<a href="#">link 3</a>
<a href="#">link 2</a>
我有這樣的代碼的順序(靜態):隨機化一些鏈接
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
我想知道是否可以讀取這些<a>
標籤和使用jQuery隨機的順序,使之將(例如)顯示:
<a href="#">link 1</a>
<a href="#">link 3</a>
<a href="#">link 2</a>
var elems = $('a');
elems.sort(function() { return (Math.round(Math.random())-0.5); });
for(var i=0; i < elems.length; i++) elems.parent().append(elems[i]);
謝謝,這正是我要找的。 – 2012-07-25 20:01:09
這將以隨機順序返回鏈接。
$("a").sort(function() {return 0.5 - Math.random()})
所以我想如果你把鏈接放在一個容器中,你可以用重新排序的數組重新填充它。
我發現這個解決方案:http://stackoverflow.com/a/9641564/1102592。我也會試試這個@nico – 2012-07-25 18:05:14
您可以使用ORDER BY RAND()或使用jQuery 您可以分配的ID給每個標籤和隨機其追加到它的父元素做在你的MySQL查詢擺在首位使用這個插件:Random - jQuery plugin
我認爲他的頁面是靜態的,否則當從數據庫中拉出鏈接時'ORDER BY RAND()'是一個很好的選擇。 – nico 2012-07-25 18:07:27
所有這些聲音好,但你可以做一個簡單的插件中,像這樣:
(function($) {
$.fn.extend({
randomize: function() {
return $.randomize($(this).get());
}
});
$.randomize = function(arr) {
for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
return $(arr);
};
})(jQuery);
,然後用它作爲這樣的:
$("#someEleID").prepend($("a").randomize());
或:
$("#someEleID").prepend($.randomize($("a")));
什麼是鏈接的來源?如果使用數據庫,那麼爲什麼不以隨機順序返回它們。 – RobB 2012-07-25 17:57:16
可能的重複[隨機jQuery序列的div元素](http://stackoverflow.com/questions/1533910/randomize-a-sequence-of-div-elements-with-jquery) – 2012-07-25 18:01:31
我什麼都沒有使用數據庫(它是統計),在這種情況下,來源無關緊要。 – 2012-07-25 18:05:56