javascript - 如何在 JavaScript 中随机打乱列表项
问题描述
我试图做一个单词填充测验,但被困在两者之间:
- 希望随机打乱列表项
如果猜测是正确的,那么如何进入下一个空白
$(".btn-container li").click(function () {
let val = $(this).text();
$(".blank:empty:first").html(val);
var optionIndex = $(this).index();
if (optionIndex === blankIndex) {
$(this).prop("disabled", true).addClass('disable');
console.log('right');
} else {
console.log('wrong');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="content-container">
<p>The bluebird <span class="blank"></span> the <span class="blank"></span> on his <span class="blank"></span></p>
</div>
<div class="btn-container">
<ul id="my_div">
<li><a href="#">carries</a></li>
<li><a href="#">sky</a></li>
<li><a href="#">back</a></li>
</ul>
</div>
解决方案
在这里我发现了简单的逻辑https://stackoverflow.com/a/11972692/6631280
var ul = document.querySelector('#my_div');
for (var i = ul.children.length; i >= 0; i--) {
ul.appendChild(ul.children[Math.random() * i | 0]);
}
<div class="content-container">
<p>The bluebird <span class="blank"></span> the <span class="blank"></span> on his <span class="blank"></span></p>
</div>
<div class="btn-container">
<ul id="my_div">
<li><a href="#">carries</a></li>
<li><a href="#">sky</a></li>
<li><a href="#">back</a></li>
</ul>
</div>
推荐阅读
- python - OpenCV cv2.add TypeError 带参数
- apache-flink - 使用保存点完成应用程序时出错
- python - ElementTree 是否会生成自己的 nsmap 而 lxml.etree 不会?
- python - 尝试在 Rest Api 上运行 GET 函数以在 python 中提取数据时出现 403 错误
- python - 如何根据熊猫列中的值选择布尔运算符?
- html - HTML/CSS - 我的 div 没有粘性,我不知道为什么
- javascript - 如何在 md-table 的顶部和底部添加水平滚动条?
- node.js - 为什么我应该在 MongoDB 中使用 NodeJS 在会话案例中搜索用户?
- javascript - 如何防止将编码文本中的“%20”转换为空格?
- c++ - 当我尝试在 C++ 中实现深度优先搜索算法时读取访问冲突