javascript - jQuery,随机div顺序

标签 javascript jquery html random

我有这个 jQuery 和 HTML http://jsfiddle.net/UgX3u/30/

    <div class="container">
    <div class="yellow"></div>
    <div class="red"></div>
    <div class="green"></div>
    <div class="blue"></div>
    <div class="pink"></div>
    <div class="orange"></div>
    <div class="black"></div>
    <div class="white"></div>
    </div>​
$("div.container div").each(function(){
    var color = $(this).attr("class");
    $(this).css({backgroundColor: color});
});

我正在尝试随机化顺序,因此 div.container div 处于任意随机位置,这意味着它开始的位置不同。并且 div 必须保留在 div.container

我试过了 http://jsfiddle.net/UgX3u/32/ http://jsfiddle.net/UgX3u/20/还有更多我在网上找到但无法使用的功能

如何让 div 以随机顺序显示

最佳答案

试试这个:

http://jsfiddle.net/UgX3u/33/

$("div.container div").sort(function(){
    return Math.random()*10 > 5 ? 1 : -1;
}).each(function(){
    var $t = $(this),
        color = $t.attr("class");
    $t.css({backgroundColor: color}).appendTo( $t.parent() );
});

.sort 像这样应用于 jQuery:

$.fn.sort = [].sort

因为它不像其他 jQuery 方法那样执行,所以没有记录。这确实意味着它可能会发生变化,但我怀疑它永远不会改变。为避免使用未记录的方法,您可以这样做:

http://jsfiddle.net/UgX3u/37/

var collection = $("div.container div").get();
collection.sort(function() {
    return Math.random()*10 > 5 ? 1 : -1;
});
$.each(collection,function(i,el) {
    var color = this.className,
        $el = $(el);
    $el.css({backgroundColor: color}).appendTo( $el.parent() );
});

关于javascript - jQuery,随机div顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436360/

相关文章:

jquery - 如何在 jQuery 中给定文本节点获取最近的父节点?

javascript - Jquery AJAX 并弄清楚如何不为多次重新加载嵌套回调。

Jquery 克隆和单选按钮 : strange behavior

html - 将 2 张图像直接向右浮动,而不向下推文本

html - 在 CSS 中禁用转换的初始加载

Python + BeautifulSoup : How to get wrapper out of HTML based on text?

javascript - 无法在API项目中多次搜索

javascript - JavaScript 中的 slice() 和 substr() 有什么区别?

javascript - 分配给新变量时,计数器值在循环内发生变化

javascript - 如何在表单中添加随机按钮