Javascript 如何在单击事件上循环遍历对象数组?
我正在创建一个测验应用程序,其中问题、答案(数组)和正确答案都存储在数组中的对象中。我试图将事件侦听器附加到一个按钮,当单击该按钮时,该按钮将增加变量num(然后用作对象数组的索引),然后根据新的索引值显示下一个对象的内容(本质上是一个计数按钮单击次数的计数器) 我的问题是,当我单击“下一步”按钮时,显示问题的单选按钮和p元素不会更新为新对象问题和选项。我只能假设num计数器并没有在每次单击按钮时实际递增。我尝试在全局范围和局部范围中声明num变量 下面是我的代码Javascript 如何在单击事件上循环遍历对象数组?,javascript,arrays,counter,javascript-objects,Javascript,Arrays,Counter,Javascript Objects,我正在创建一个测验应用程序,其中问题、答案(数组)和正确答案都存储在数组中的对象中。我试图将事件侦听器附加到一个按钮,当单击该按钮时,该按钮将增加变量num(然后用作对象数组的索引),然后根据新的索引值显示下一个对象的内容(本质上是一个计数按钮单击次数的计数器) 我的问题是,当我单击“下一步”按钮时,显示问题的单选按钮和p元素不会更新为新对象问题和选项。我只能假设num计数器并没有在每次单击按钮时实际递增。我尝试在全局范围和局部范围中声明num变量 下面是我的代码 var问题一={ 问题:“地
var问题一={
问题:“地球上最大的自然元素是什么?”,
选择:[“钚”、“硅”、“铀”、“碳”],
正确答案:2
};
变量二={
问题:“什么自然现象导致天空变蓝,云变白?”,
选择:[“彩色偏振”、“瑞利散射”、“日食”、“同步辐射”],
正确答案:1
};
变量三={
问:“太阳离地球有多少天文单位?”,
选择:[“1黄金”、“9100万英里”、“1.496亿公里”、“8光分钟”],
正确答案:0
};
var allQuestions=[问题一、问题二、问题三];
//将表单元素存储在变量中
var quizForm=document.form1;
//将所有无线电选项放在一个数组中
//遍历数组,直到找到选定项
//返回用户选择
函数getUserChoice(){
var无线电=quizForm.choiceOptions;
对于(变量i=0;i
测验
测验
选择最能回答问题的答案,然后单击“下一步”
问题1:
收音机[i].addEventListener(“单击”,getUserChoice())代码>=>不要调用getUserChoice(),只需引用它即可。将其更改为:radios[i].addEventListener(“单击”,getUserChoice)代码>抱歉,仍在使用该功能。只要我能点击一个按钮显示一个新的问题和答案,我就会纠正所有这些。测验仍然很不完整。quizForm.
在循环中的收音机[i]停止你正在做的一切并学习如何调试JavaScript代码之前丢失了。这是你现在要掌握的最重要的技能。当然,您可以在SO上发布一个问题,并且通常在几分钟内得到答案,但是当您学习调试时,您通常能够在发布问题所需的更短时间内找到答案。特别是,学习如何在调试器中单步执行代码。您可以停在每一条语句上,查看每一条语句,以确切地了解代码在做什么。看到了吗,约书亚K,你的代码真是不可思议。我将研究它,看看如何在我从事的未来项目中融入您的一些方法。Michael Geary,谢谢你的建议。我正在学习您现在链接到的控制台调试课程。radios[I]。addEventListener(“单击”,getUserChoice())代码>=>不要调用getUserChoice(),只需引用它即可。将其更改为:radios[i].addEventListener(“单击”,getUserChoice)代码>抱歉,仍在使用该功能。只要我能点击一个按钮显示一个新的问题和答案,我就会纠正所有这些。测验仍然很不完整。quizForm.
在循环中的收音机[i]停止你正在做的一切并学习如何调试JavaScript代码之前丢失了。这是你现在要掌握的最重要的技能。当然,您可以在SO上发布一个问题,并且通常在几分钟内得到答案,但是当您学习调试时,您通常能够在发布问题所需的更短时间内找到答案。特别是,学习如何在调试器中单步执行代码。您可以停在每一条语句上,查看每一条语句,以确切地了解代码在做什么。看到了吗,约书亚K,你的代码真是不可思议。我将研究它,看看如何在我从事的未来项目中融入您的一些方法。Michael Geary,谢谢你的建议。我正在学习您现在链接到的控制台调试课程。