如果选择了错误的答案,我试图表明问题的正确答案。 我在JSON对象列表中存储了5个问题,并存储了用户在数组中选择的内容。
我用来追加答案的函数是:
function userAnswers(){
$("#result").append('<div id="yourAnswers"></div>');
//rememberAnswer is the name of the array that have stored the data during the quiz
for(i = 0; i < rememberAnswer .length; i++){
$("#yourAnswers").append('<p>'+rememberAnswer [i][0]+'</p>');
if(rememberAnswer [i][2] == 1){
$("#yourAnswers").append('<p style="color: green;">'+rememberAnswer [i][1]+'</p><br/>');
} else {
$("#yourAnswers").append('<p style="color: red;">'+rememberAnswer [i][1]+'</p><br/>');
//$("#yourAnswers").append('<p style="color: green;">The correct answer is: '+ correct([i])+'</p>');
// This makes the browser crash when
}
}
}
纠正()
的功能function correct(id){
var test = quiz.question[id].answers; //Getting the answers from JSON-list
var text;
for(i = 0; i < test.length; i++){
if(test [i].correct_answer == 1){
text = test[i].answer;
break;
}
}
return text;
}
有趣的是,如果我在json列表中只有一个问题,那么一切正常。但是当我尝试用所有五个执行它时,浏览器崩溃了。
答案 0 :(得分:1)
你没有声明你的循环变量(“i”):
for(var i = 0; i < test.length; i++){ // <-- add the "var" keyword
因此,变量“i”是全局变量,因此“正确”函数会踩踏变量的值。这两个函数都应该使用var
声明“i”。