我对编码完全陌生,所以如果我的问题很蠢,请耐心等待(&请将任何答案写出来作为代码,否则我将无法得到它......)。我正在开发Qualitative调查页面,其中有两个可选答案 - 每个答案都是一个项目列表。我正在尝试对列表进行洗牌,以便每个参与者以不同的顺序查看它们。我从网上获得了以下代码。只能做HTML列表一次洗牌
我的HTML列表如下所示:
<div id="enriched">
<div class="list_item">lots of sunshine</div>
<div class="list_item">gorgeous beaches and coral reefs</div>
<div class="list_item">ultra-modern hotel</div>
<div class="list_item">very cold water</div>
<div class="list_item">very strong winds</div>
<div class="list_item">no nightlife</div>
</div>
而我的JavaScript代码是这样的:
var list = document.getElementById("enriched");
function shuffleNodes() {
var nodes = list.children, i = 0;
nodes = Array.prototype.sort.call(nodes);
while(i < nodes.length) {
list.appendChild(nodes[i]);
++i;
}
}
shuffleNodes();
但是,只从原始版本洗牌列表一次。之后,每个下一个参与者都会看到该版本,而没有进一步的洗牌发生。之后,我需要以某种方式使它适用于这两个列表..我有点强调。
我也尝试了一个数组代码,但我无法让它工作。
你不能在你的代码洗牌节点的任何地方 - 你对它们进行排序在一些特定的顺序放置。对它们进行一次排序只是将它们按照相同的顺序放置,所以在第一次排序后您不会看到任何更改。 –
http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array – shareef