javascript - 随机/随机化一组具有两个子元素的 div

标签 javascript jquery html

预先感谢您阅读本文。

我有一组 div(在网格中)并尝试在每个页面加载时实现随机/随机播放顺序。 本质上这不是什么大问题,但关键是我有一个父级 div(网格)和几个子级(level-1),这些子级又有几个子级(level-2)。

使用一点 jQuery,我已经在每个页面加载时实现了 1 级 div 的随机顺序,但我也需要 2 级 div 的随机顺序。

如果起始顺序如下所示(例如):
A - B - C
D - E - F
G-H-I

我需要这样的新订单(例如):
G - A - D
C - F - H
I - B - E

感谢您的每一次帮助!

我做了一个 fiddle : https://jsfiddle.net/tns9qumn/

$(function() {
  var parent = $(".grid");
  var divs = parent.children();
  while (divs.length) {
    parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
  }
});
.level-2 {
  width: 3rem;
  height: 3rem;
  background-color: black;
  margin: .5rem;
  color: white;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="grid">
  <div class="level-1">
    <div class="level-2">A</div>
    <div class="level-2">B</div>
    <div class="level-2">C</div>
  </div>
  <div class="level-1">
    <div class="level-2">D</div>
    <div class="level-2">E</div>
    <div class="level-2">F</div>
  </div>
  <div class="level-1">
    <div class="level-2">G</div>
    <div class="level-2">H</div>
    <div class="level-2">I</div>
  </div>
</div>

最佳答案

不确定,但试试这个?

$.fn.randomize = function(a,b) {
  return this.each(function() {
      var $this = $(this);
      var elems = $this.children(a).children(b);
      var len = $this.find(a).eq(0).find(b).length;

      elems.sort(function() { return (Math.round(Math.random())-0.5); });  

      $this.detach(a);  

      for(var i=0; i < elems.length; i++) {
        $this.find(a).eq(i%len).append(elems[i]);
      }

  });    
}

$('.grid').randomize('.level-1','.level-2');

演示:https://jsfiddle.net/l2aelba/rpnyamnL/

原文作者:https://stackoverflow.com/a/1533945/622813

关于javascript - 随机/随机化一组具有两个子元素的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34614086/

相关文章:

javascript - 用纯 JavaScript 编写 jQuery 语句

html - 当我调整浏览器大小时,元素与图像重叠

javascript - 有什么办法可以解决 HTML5 Canvas 大小限制吗?

javascript - JQueryMobile - AJAX - JSON 解析

c# - 如何在 WebBrowser 实例中在 WPF 和 JavaScript 之间进行通信?

jquery - 为什么这个 Bootstrap 下拉示例不起作用?

javascript - 允许 mailto href 链接中包含 '&' 字符

java - Jmeter:如何在单个请求中传递数组值?

javascript - 如何处理 onClick 而不是 href <a>

jQuery.error() 不适用于 iframe。