php - 使用 jQuery 随机化页面上 <a> 链接的顺序

标签 php jquery dom-manipulation

我现在有一个标签内的链接列表。我希望页面在页面重新加载(页面 View )时“重新组织”每个链接的顺序并显示结果。

例如:

<div id="testgroup">
     <a href="1.html" id="1">1</a>
     <a href="2.html" id="2">2</a>
     <a href="3.html" id="3">3</a>
     <a href="4.html" id="4">4</a>
     <a href="5.html" id="5">5</a>
</div>

在页面重新加载时,源代码如下所示:

<div id="testgroup">
     <a href="5.html" id="5">5</a>
     <a href="1.html" id="1">1</a>
     <a href="3.html" id="3">3</a>
     <a href="4.html" id="4">4</a>
     <a href="2.html" id="2">2</a>
</div>

或其他一些随机顺序

是否有非常基本的 jQuery DOM 操作脚本来完成此操作?如果有帮助,该页面也是基于 PHP 构建的。

最佳答案

如果简单性比随机性更重要:

您可以使用 get 将 jQuery 对象转换为数组,然后使用 native sort 和旨在随机化它的函数。然后将随机排列的数组放回DOM。

var array = $("#testgroup").children().get().sort( function() {
    return 0.5 - Math.random();
});
$("#testgroup").append(array);

演示:http://jsfiddle.net/4e7cs/

如果您正在寻找真正的洗牌:

您可以利用 Fisher-Yates shuffle :

var array = $("#testgroup").children().toArray();
var i = array.length,
    j, temp;
while (--i) {
    j = Math.floor(Math.random() * (i + 1));
    temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

$("#testgroup").append(array);

演示:http://jsfiddle.net/4e7cs/3/

这是一个writeup为什么第一个不好,但为了完整起见,我会把它留在这里。

关于php - 使用 jQuery 随机化页面上 <a> 链接的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7237402/

相关文章:

php - BETWEEN 条件只选择单行 Symfony2

javascript - 将 HTML 文件内容传递给 JavaScript 变量

php - MVC,填充我的演示模型的最佳实践是什么?

javascript - 当选项卡处于非事件状态时,如何使进度条的 setInterval 起作用

javascript - 如何使用 jquery 突出显示选定的列表项?

php - XAMPP 全部为未定义函数 pg_connect()

jquery - 从 iOS 上的 PhoneGap 到服务器上的 PHP 的 "Post"和 "GET"请求不起作用

javascript - 调整大小事件的监听器

jQuery - 如何将多个节点 append 到容器

javascript - 添加类 jQuery