Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只能使HTML列表洗牌一次_Javascript_Html - Fatal编程技术网

Javascript 只能使HTML列表洗牌一次

Javascript 只能使HTML列表洗牌一次,javascript,html,Javascript,Html,我对编码完全是新手,所以如果我的问题很愚蠢,请容忍我(请将任何答案写成代码,否则我将无法得到答案…)。我正在做一个Qualtrics调查页面,我有两个可选答案-每个答案都是一个项目列表。我正在尝试重新排列列表,以便每个参与者以不同的顺序查看它们。我从网上得到了这些代码 我的HTML列表如下所示: <div id="enriched"> <div class="list_item">lots of sunshine</div> <div c

我对编码完全是新手,所以如果我的问题很愚蠢,请容忍我(请将任何答案写成代码,否则我将无法得到答案…)。我正在做一个Qualtrics调查页面,我有两个可选答案-每个答案都是一个项目列表。我正在尝试重新排列列表,以便每个参与者以不同的顺序查看它们。我从网上得到了这些代码

我的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();
var list=document.getElementById(“丰富”);
函数shuffleNodes(){
var nodes=list.children,i=0;
nodes=Array.prototype.sort.call(节点);
while(i
但是,它只会从原始版本中洗牌一次列表。在那之后,每一个下一个参与者只需看到那个版本,就不会发生进一步的混乱。在这之后,我需要以某种方式使它同时适用于两个列表。。我有点紧张


我还尝试了一个数组代码,但无法使其工作。

正如函数名所示,行
节点=array.prototype.sort.call(nodes)不洗牌内容-它对内容进行排序。所以你每次都得到了一致的排序


您可能需要查看是否有随机执行。

这将创建一个新的随机列表数组:

var random_list = [];

for ( i = 0; i < nodes.length; i ++ ) {
  random_list.push( nodes[i].innerHTML );
}

random_list.sort( function() {
  return Math.random() - 0.5;
});
var random_list=[];
对于(i=0;i
您没有在代码中的任何地方洗牌节点,而是按照特定的顺序对节点进行排序。一次又一次地对它们进行排序,只是将它们按相同的顺序排列,所以在第一次排序后不会看到任何变化。