所以,我试图创建交互式测验,我几乎完成了。只有答案检查部分失败了。我有问题,选项和正确答案的数组,但比较只是失败。
function check(clicked_id)
{
document.getElementById("Question").value=" " + questionArray[i];
document.getElementById("OptionA").value=" " + aArray[i];
document.getElementById("OptionB").value=" " + bArray[i];
document.getElementById("OptionC").value=" " + cArray[i];
document.getElementById("OptionD").value=" " + dArray[i];
var selected = document.getElementById(clicked_id).value;
var answer = answerArray[i];
document.getElementById("text").innerHTML = answer + "<br>" + selected;
if (selected == answer) {
document.getElementById("comparison").innerHTML = "Correct";
} else {
document.getElementById("comparison").innerHTML = "Wrong";
}
}
html部分是
<input onclick="check(this.id)" type="button" value="Click here to start" id="Question" /><br><br>
<input onclick="check(this.id)" type="button" value="" id="OptionA" />
<input onclick="check(this.id)" type="button" value="" id="OptionB" />
<input onclick="check(this.id)" type="button" value="" id="OptionC" />
<input onclick="check(this.id)" type="button" value="" id="OptionD" />
<div id="text"></div>
<div id="comparison"></div>
因为什么原因它不会工作,我不明白为什么。
答案 0 :(得分:1)
您似乎在值的前面添加了空格,但在比较之前从不删除空格。至少我看不出你是否这样做。试试这个。
var selected = document.getElementById(clicked_id).value.trim();
答案 1 :(得分:0)
您应该在比较期间修剪两个值。像这样的东西。
if (selected.trim() == answer.trim()) {
document.getElementById("comparison").innerHTML = "Correct";
} else {
document.getElementById("comparison").innerHTML = "Wrong";
}