Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击事件上循环遍历对象数组?_Javascript_Arrays_Counter_Javascript Objects - Fatal编程技术网

Javascript 如何在单击事件上循环遍历对象数组?

Javascript 如何在单击事件上循环遍历对象数组?,javascript,arrays,counter,javascript-objects,Javascript,Arrays,Counter,Javascript Objects,我正在创建一个测验应用程序,其中问题、答案(数组)和正确答案都存储在数组中的对象中。我试图将事件侦听器附加到一个按钮,当单击该按钮时,该按钮将增加变量num(然后用作对象数组的索引),然后根据新的索引值显示下一个对象的内容(本质上是一个计数按钮单击次数的计数器) 我的问题是,当我单击“下一步”按钮时,显示问题的单选按钮和p元素不会更新为新对象问题和选项。我只能假设num计数器并没有在每次单击按钮时实际递增。我尝试在全局范围和局部范围中声明num变量 下面是我的代码 var问题一={ 问题:“地

我正在创建一个测验应用程序,其中问题、答案(数组)和正确答案都存储在数组中的对象中。我试图将事件侦听器附加到一个按钮,当单击该按钮时,该按钮将增加变量num(然后用作对象数组的索引),然后根据新的索引值显示下一个对象的内容(本质上是一个计数按钮单击次数的计数器)

我的问题是,当我单击“下一步”按钮时,显示问题的单选按钮和p元素不会更新为新对象问题和选项。我只能假设num计数器并没有在每次单击按钮时实际递增。我尝试在全局范围和局部范围中声明num变量

下面是我的代码

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,谢谢你的建议。我正在学习您现在链接到的控制台调试课程。