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