Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 一次循环一个JSON数据_Javascript_Jquery_Json - Fatal编程技术网

Javascript 一次循环一个JSON数据

Javascript 一次循环一个JSON数据,javascript,jquery,json,Javascript,Jquery,Json,我有以下测试应用程序: 其想法是,一系列网页都将有一个div,其中包含测验页面的部分编号,例如1,然后从该部分的JSON文件中取出问题 由于SO社区的帮助,我完成了这部分工作,因此为了清晰起见,我创建了一个新问题来处理这些独立的问题 我的问题是,我只希望第一个问题出现在页面加载部分,然后当用户单击a或B按钮时,它需要在下一个问题中加载,所以显示问题2,然后显示问题3,依此类推 用户每次只能在#questionsul中回答一个问题。 一旦一个部分的所有问题都显示出来了,我就需要回调完成的函数,这样

我有以下测试应用程序:

其想法是,一系列网页都将有一个div,其中包含测验页面的部分编号,例如1,然后从该部分的JSON文件中取出问题

由于SO社区的帮助,我完成了这部分工作,因此为了清晰起见,我创建了一个新问题来处理这些独立的问题

我的问题是,我只希望第一个问题出现在页面加载部分,然后当用户单击a或B按钮时,它需要在下一个问题中加载,所以显示问题2,然后显示问题3,依此类推

用户每次只能在
#questions
ul中回答一个问题。

一旦一个部分的所有问题都显示出来了,我就需要回调完成的函数,这样我就可以做一些额外的逻辑

我最好怎么做呢?我想我需要先数一数这一部分的问题数量,然后再做一个增量来找到结尾。有人能帮忙吗

编辑:我计划做一些类似于:
问题3/10
的事情,所以获得这个数字似乎非常重要。但我对第一个问题之后的下一个问题感到困惑,依此类推,直到本节结束……


谢谢

假设您有一个包含问题的数组。每个问题都是一个对象,有一个
问题
键和一个
答案
键。
问题
始终是一个包含问题文本的字符串。
答案
将是一个数组,其中包含0个或更多表示问题可选答案的任何类型的元素

var questions = [
    {question : 'What is 2 + 2?', answers : [4, 5, 6]}, 
    {question : 'What is 6 * 4?', answers : [20, 24, 28]}
];
现在,让我们编写一个函数来显示一个问题。我们将使用一个全局变量来存储要显示的问题的索引(初始化为0以显示第一个问题):

var currentQuestion=0;
函数displayQuestion(){
if(currentQuestion

然后,您所需要做的就是将
单击事件处理程序绑定到按钮,以调用
displayQuestion()
函数。

假设您有一个包含问题的数组。每个问题都是一个对象,有一个
问题
键和一个
答案
键。
问题
始终是一个包含问题文本的字符串。
答案
将是一个数组,其中包含0个或更多表示问题可选答案的任何类型的元素

var questions = [
    {question : 'What is 2 + 2?', answers : [4, 5, 6]}, 
    {question : 'What is 6 * 4?', answers : [20, 24, 28]}
];
现在,让我们编写一个函数来显示一个问题。我们将使用一个全局变量来存储要显示的问题的索引(初始化为0以显示第一个问题):

var currentQuestion=0;
函数displayQuestion(){
if(currentQuestion

然后,您所需要做的就是将
单击事件处理程序绑定到您的按钮,以调用
displayQuestion()
函数。

我模拟了该网站的功能。我不知道这是否正是你想要的。也许有更多的解释,我可以更进一步

我嘲笑了那个网站的混乱。我不知道这是否正是你想要的。也许有更多的解释,我可以更进一步

你有没有尝试过实现这一点,或者你被困在伪代码阶段?@Cameron stackoverflow用户正在编写你的整个应用程序。@Cameron好吧,我已经发布了一个答案,其中简要介绍了它应该如何工作。你仍然需要自己实现一个合理的数量,我不知道它有多准确,但这应该是一个很好的起点。你的主要问题是你的JSON结构很糟糕-我已经用新的结构更新了我的答案中的提琴你尝试过实现它吗,还是你被困在伪代码阶段?@Cameron stackoverflow用户正在编写你的整个应用程序。@Cameron好吧,我已经发布了一个答案,其中简要介绍了它应该如何工作。你还需要实现一个合理的量,我不知道它有多精确,但这应该是一个很好的起点。你的主要问题是你的JSON结构很糟糕-我已经用新的structure@Cameron你不会循环,您将存储JSON生成的对象,并一次性调用此函数以显示第一个问题,然后在选择答案以显示下一个问题的后续时间调用此函数。我不想讲太多细节,故意避免看你实际上已经拥有的东西,因为我认为如果你必须自己编写大部分代码,你会学到更多。这就是我总结的:我认为我做错了?如果我没有循环使用数据,我将如何获取数据??目前,我正在直接获取完成的方法。最大的问题是,您的问题当前存储在一个对象中,其键从
“1”
开始,而不是存储在一个0索引数组中。如果可以,我会更改JSON,因为数组对此更有意义。@Cameron看一看JSFIDLE。它模拟
$.getJSON()
cal