随机化一些链接
我有这样的代码的顺序(静态):随机化一些链接
<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