JavaScript测验类型错误:无法读取属性';0';未定义的
这是我的第一个大型JavaScript项目,请原谅我无知的错误 我在上面遇到了一个奇怪的错误 我正在尝试创建一个测验,通过存储在数组中的问题进行循环。当用户单击按钮时,问题应该更新。还有,是的,这是以“办公室”为主题的测验 以下是我的JS:JavaScript测验类型错误:无法读取属性';0';未定义的,javascript,Javascript,这是我的第一个大型JavaScript项目,请原谅我无知的错误 我在上面遇到了一个奇怪的错误 我正在尝试创建一个测验,通过存储在数组中的问题进行循环。当用户单击按钮时,问题应该更新。还有,是的,这是以“办公室”为主题的测验 以下是我的JS: let q = 0; let rb1 = 0; let rb2 = 1; let rb3 = 2; let rb4 = 3; const cycle_questions = function() { const newQuestion = document
let q = 0;
let rb1 = 0;
let rb2 = 1;
let rb3 = 2;
let rb4 = 3;
const cycle_questions = function() {
const newQuestion = document.getElementById('nextQuestion');
newQuestion.onclick = function() {
let currentQuestion = (quizQuestions.question[q]);
let currentRadio1 = (quizQuestions.choices[rb1]);
let currentRadio2 = (quizQuestions.choices[rb2]);
let currentRadio3 = (quizQuestions.choices[rb3]);
let currentRadio4 = (quizQuestions.choices[rb4])
$('.question').innerHTML(currentQuestion);
$('#r1').innerHTML(currentRadio1);
$('#r2').innerHTML(currentRadio2);
$('#r3').innerHTML(currentRadio3);
$('#r3').innerHTML(currentRadio4);
q++;
rb1 = rb1 + 3;
rb2 = rb2 + 3;
rb3 = rb3 + 3;
rb4 = rb4 + 3;
};
};
这是我的阵列:
const quizQuestions = [{
"question": "What office employee did Michael hit with his car?",
"choices": ["Stanley", "Angela", "Kevin" , "Meredith"],
"correct": "Meredith"
}, {
"question": "During the Fire Drill episode, what DID NOT happen?",
"choices": ["Someone breaks into the vending machine", "Someone throwing a cat into the ceiling", "Someone hides in the utility closet" , "Someone lights firecrackers"],
"correct": "Someone hides in the utility closet"
}];
这是我的HTML:
<form id="game">
<div class="formContainer">
<div class="question">Question Goes Here</div>
<div class="choices">
<label id="r1">
<input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 1
</label>
<label class="rightAnswer" id="r2">
<input onclick="check()" id="correct" class="correct" type="radio" name="answer"/>Answer 2
</label>
<label id="r3">
<input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 3
</label>
<label id="r4">
<input onclick="check()" id="wrong" type="radio" name="answer"/>Answer 4
</label>
</div>
<input id="submitButton" class="submitButton" type="submit" value="Submit Answer">
<button onclick="cycle_questions()" id="nextQuestion" class="nextQuestion">Next Question</button>
</div>
</form>
问题就在这里
答复1
答复2
答复3
答复4
下一个问题
感谢您的帮助!谢谢 您的问题在这一行:
let currentQuestion = (quizQuestions.question[q]);
因为你的quizQuestions数组没有属性问题。
相反,数组中的对象具有此属性
因此引发错误,因为quizquestion.question是“未定义”的,并且它没有属性0([q])
您可能想做的是:
let currentQuestion = (quizQuestions[q].question);
同样的情况也会发生在以下几行中:
quizQuestions.choices[rb1]...
在哪一行得到这个错误?这一行:让currentQuestion=(quizQuestions.question[q]);它特别突出了[q]@AlexWayneThank you!成功了。