只能使HTML列表洗牌一次
Can only make HTML list shuffle once
我对编码完全陌生,所以如果我的问题很愚蠢,请耐心等待(请把任何答案都写成代码,否则我不会得到…)。我正在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();
然而,它只对原始版本的列表进行了一次洗牌。在那之后,每一个下一个参与者都只看到了那个版本,没有发生进一步的洗牌。之后,我需要以某种方式使它也适用于这两个列表。。我有点压力。
我还尝试了一个数组代码,但无法使其工作。
正如函数名所示,nodes = Array.prototype.sort.call(nodes);
行不会打乱内容,而是对其进行排序。因此,每次都会得到一致的排序。
您可能想看看如何随机化(搅乱)JavaScript数组?用于混洗实现。
这应该创建一个新的random_list数组:
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;
});
相关文章:
- Javascript html每点击一次就会更改url
- 使用Javascript每隔几秒钟更改一次HTML页面中的图像
- 如何加载一个html页面并在其中只需单击一次即可运行函数
- 一次加载HTML对象并多次使用
- HTML画布-使动画一次发生一个,而不是同时发生多个
- Lightswitch HTML 自定义控件仅显示一次
- 在 html 页面上一次播放一个视频
- 反应:仅在单击 html 元素时执行一次操作
- 如何使网页一次只能访问一次?(JS+HTML)
- 一次提交两个 HTML 表单,一个在当前窗口中,一个在新窗口中
- 如何获取单击元素的类值,并使用此值在 jquery 中最后一次出现此类之后放置一段 html 代码
- html 如何从一次计算中获得多个即时结果
- 使用 Javascript/jQuery 一次播放一个 HTML 音频文件
- 每x秒自动刷新一次Html表
- 使我的网站只显示一次HTML
- 如何在特定的屏幕分辨率范围发生时追加一次html元素
- 在同一窗口中只打开一次.html页面.文件在本地运行
- 只需使用JavaScript重新加载一次HTML页面
- 如何自动刷新一次HTML页面
- 为后端和前端视图(PHP,Backbone)定义一次HTML