-1

我有这样的代码(静态):

<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>
4

4 回答 4

0

这将以随机顺序返回链接。

$("a").sort(function() {return 0.5 - Math.random()})

所以我想如果你把链接放在一个容器中,你就可以用重新排序的数组重新填充它。

于 2012-07-25T18:04:14.153 回答
0

您可以首先使用 ORDER BY RAND() 或使用 JQUERY 在 mysql 查询中执行此操作,您可以为每个 a 标签分配 id 并使用此插件将其随机附加到其父元素:Random - jQuery plugin

于 2012-07-25T18:06:42.573 回答
0

所有这些听起来都不错,但是您可以像这样制作一个简单的插件:

(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")));
于 2012-07-25T18:24:36.860 回答
0
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-25T18:05:04.437 回答