我遇到了一个问题,即我的计数器变量正在递增,即使该语句应该评估为false。
即使correctAnswers
递增else if
变量,wrongAnswers
变量也会继续递增。 unanswered
变量似乎也增加了两倍,就像语句被触发两次一样。我似乎无法隔离问题发生的地方。
$("#quiz").on("click", function() {
if ($("input[name=question-1]:checked").val() === "correct") {
correctAnswers++;
unanswered--;
} else if ($("input[name=question-1]:checked").val() === "wrong") {
wrongAnwers++;
unanswered--;
}
if ($("input[name=question-2]:checked").val() === "correct") {
correctAnswers++;
unanswered--;
} else if ($("input[name=question-2]:checked").val() === "wrong") {
wrongAnwers++;
unanswered--;
}
console.log("correct " + correctAnswers);
console.log("wrong " + wrongAnwers);
console.log("unanswered " + unanswered);
});
答案 0 :(得分:1)
我使用了每个可能的true / false组合来运行逻辑。除了你没有将未回答的问题视为错误答案之外,任何变量都没有无法解释的增量。我将Console.log的每个变量的初始值(在if语句之前),以及每个if语句之间的初始值。
另一件事是确保使用单选按钮而不是复选框。
小提琴: https://jsfiddle.net/TimothyKanski/y4upr5j8/
如果您想将未回答的问题统计为错误,请添加Else:
if (a) {
correctAnswers++;
unanswered--;
} else if (b) {
wrongAnwers++;
unanswered--;
}
else{
wrongAnwers++;
}