【发布时间】:2016-10-29 08:40:14
【问题描述】:
我正在尝试为一个教育网站开发一个小测试,我想随机化问题和练习的顺序,然后用一组单选按钮在每个问题下的答案顺序下线。我已经尝试了我在两个单独的问题(即this one 和this one)上找到的代码,尽管两个答案实际上是相同的。我正在使用的代码在某种程度上可以满足我的要求,但有时我的部分测试会丢失(大多数时候我得到 5 个问题和 2-3 个练习,而不是 6 个和 4 个)。我该如何纠正? JSFiddle 中的完整代码示例(来自后端的一些不相关的东西,忽略它们 - 内容是占位符,使调试更容易),以及下面的 javascript/jQuery 代码:
$(document).ready(function () {
var questions = $('.question');
for (var i = 0; i < questions.length; i++) {
var target = Math.floor(Math.random() * questions.length - 1) + 1;
var target2 = Math.floor(Math.random() * questions.length - 1) + 1;
questions.eq(target).before(questions.eq(target2));
}
var exercises = $(".exercise");
for (var j = 0; j < exercises.length; j++) {
var target = Math.floor(Math.random() * exercises.length - 1) + 1;
var target2 = Math.floor(Math.random() * exercises.length - 1) + 1;
exercises.eq(target).before(exercises.eq(target2));
}
});
附注#1:网站的后端是用 Asp.Net 和 C# 构建的,如果这与问题有关的话。
附注#2: 拉小提琴四五次,计算问题和练习的数量以重现问题。
【问题讨论】:
标签: javascript jquery html random