理想的結果後:之後,用戶選擇一個答案,我想修改score
變量: score += 1
如果答案是正確的或者不改變在所有如果答案是錯的。
當前結果:對於用戶正在進行的每一種選擇,得分保持不變:0
。商店得分變量的事件
首先,我存儲將在question_paragraph
中更改的段落以及用戶將在next_button
中點擊的按鈕。此外,我還在user_answer
中存儲了該值(我在數據表示法中使用數組表示法將每個輸入的屬性value
- 0第一次,1秒等)。
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
(我不包括它在這裏,但工作正常)。如果allQuestions[y].correctAnswer
符合user_choice
的值,我會附加條件語句以增加y
和代碼>分數。
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);
你不應該指望了ÿ++;每次changeQuestion()被調用? –
@johnSmith它這樣做;有條件的兩部分都有'y ++'。 – Pointy
你怎麼知道它甚至試圖增加分數?你在'if'裏放了一個'console.log()'嗎? – Pointy