理想的结果:在用户选择答案后,我想在以下位置修改score
变量:
score += 1
如果答案是正确的,如果答案是错误的话,要么根本不改变
当前结果:对于用户正在制作的每个选项,分数保持不变:0
。
首先,我存储将在question_paragraph
中更改的段落以及用户在next_button
中点击的按钮。另外,我在value
中存储了值(我在每个输入上使用数组符号 - 0首先,1秒等)放置了属性user_answer
。
var question_paragraph = document.getElementById('question');
var next_button = document.getElementById('next');
var i = 0;
var user_answer = getCheckedValue(document.getElementsByName('choice'));
var y = 0;
var score = 0;
如果存在,getCheckedValue
函数将返回我输入的value
属性。
function getCheckedValue(radioObj) {
var radioLength = radioObj.length;
for(var z = 0; z < radioLength; z++) {
if(radioObj[z].checked) {
return radioObj[z].value;
}
}
return "Error!";
}
以下是问题。除隔离区域外,该功能正常。 allQuestion
是我的对象,我存储了问题,可能的答案和正确答案,correctAnswer
(我不在此处将其包括在内,但工作正常)。如果y
符合allQuestions[y].correctAnswer
的值,我会使用条件语句来增加user_choice
和代码&gt;得分。
function changeQuestion() {
//PROBLEM
if(allQuestions[y].correctAnswer == user_answer){
score += 1;
y++;
} else{y++;}
//PROBLEM
i = (i < allQuestions.length) ? (i + 1) : 0;
if (i == allQuestions.length) {
i = 0;
return question_paragraph.replaceChild(document.createTextNode(allQuestions[0].question), question_paragraph.firstChild);
}
var newNode = document.createTextNode(allQuestions[i].question);
console.log(score);
return question_paragraph.replaceChild(newNode, question_paragraph.firstChild);
}
Finnaly,我调用了addHandler
函数。
function addHandler(name, type, handler){
if (name.addEventListener){
name.addEventListener(type, handler, false);
} else if (name.attachEvent){
name.attachEvent("on" + type, handler);
} else {
name["on" + type] = handler;
}
}
addHandler(next_button, 'click', changeQuestion);
答案 0 :(得分:0)
嗯,到目前为止,有些事情似乎很有趣。首先,我没有看到变量y的任何初始化。如果y是保留其值的全局变量,则可能是您的对象存在问题:allQuestions {}。你能提供构建对象allQuestions {}的代码吗?没有它,我不认为我可以完全回答这个问题,但我相信这就是你的问题所在。
哎呀,这应该是评论,而不是答案,对不起......