javascript - 如何洗牌兄弟 div 但保持子元素相同的顺序

标签 javascript jquery html css

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 7 年前

如何在每次刷新页面时随机重新排列 div 类 shuffledv 的顺序但保持 id 的顺序相同?

<div class="shuffledv">
<div id="2"></div>
<div id="3"></div>
<div id="1"></div>
</div>
<div class="shuffledv">
<div id="5"></div>
<div id="4"></div>
<div id="6"></div>
</div>
<div class="shuffledv">
<div id="9"></div>
<div id="8"></div>
<div id="7"></div>
</div>
<div class="shuffledv">
<div id="10"></div>
<div id="11"></div>
<div id="12"></div>
</div>

最佳答案

我想这就是您要找的:

elems = $('.shuffledv');

elems = shuffle(elems); //shuffle all the elements.


for (i = 0; i < elems.length; i++) {

  $(elems[i]).appendTo($('.container')); //reinsert.
}

function shuffle(array) { //From COOLAJ86 at http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
  var currentIndex = array.length,
    temporaryValue, randomIndex;

  // While there remain elements to shuffle...
  while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="container">


  <div class="shuffledv">
    first
    <div id="2"></div>
    <div id="3"></div>
    <div id="1"></div>
  </div>

  <div class="shuffledv">
    second
    <div id="5"></div>
    <div id="4"></div>
    <div id="6"></div>
  </div>
  <div class="shuffledv">
    third
    <div id="2"></div>
    <div id="3"></div>
    <div id="1"></div>
  </div>
  <div class="shuffledv">
    fourth
    <div id="5"></div>
    <div id="4"></div>
    <div id="6"></div>
  </div>
</div>

它会在每次运行时随机播放它们。如果他们有容器,最好这样做。

关于javascript - 如何洗牌兄弟 div 但保持子元素相同的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36455631/

上一篇:html - 网站无法在较小的屏幕上正确显示

下一篇:css - robot.txt 阻止了 WP 样式表

相关文章:

javascript - Transition effect 不把 transition image 去掉吗?

javascript - React-Native 日历 : Pass date into custom function when a day is pressed

javascript - 如何在 Angularjs 中更新或重新加载其他 Controller ?

javascript - currentTarget Javascript 的替代品

javascript - 时间计数器进度条

javascript - 高度可变的div中已知高度的垂直居中图片,允许图片溢出div上下

javascript - Bootstrap 列表项在嵌入式跨度上激活

html - 为什么这个 DIV 将 HTML 内容向下移动?

javascript - 从 JavaScript 中的参数中删除参数

c# WebBrowser- 我如何等待 javascript 完成在文档加载完成时运行的运行?