【发布时间】:2019-11-25 18:52:49
【问题描述】:
我创建了一个测验应用程序并遇到了一些问题,幸运的是我解决了问题,但我只是好奇。所以问题是我有一个包含问题和答案的数组。当我单击下一个按钮时,我想遍历数组并显示下一个问题。问题是当我点击下一个按钮时什么也没发生,只显示最后一个问题
这是一个示例代码
const questions = [
{
question: "What is 2 + 2?",
answers: [3,4,5,6]
},
{
question: "What is 6 + 2?",
answers: [9,8,5,6]
},
{
question: "What is 10 + 30?",
answers: [32,45,40,34]
}
]
const p = document.getElementById("qtn");
document.getElementById("next").addEventListener("click",()=> {
for (let i=0; i<questions.length;i++){
p.textContent = questions[i].question;
}
});
但是当我删除 for 循环时它起作用了
const i=0;
const p = document.getElementById("qtn");
document.getElementById("next").addEventListener("click",()=> {
p.textContent = questions[i].question;
i++
});
那么为什么第二个解决方案有效但第一个解决方案无效
【问题讨论】:
-
"...只显示第一个问题" - 你确定不是最后一个 问题吗?第一个示例中的循环不是必需的。每次单击时,它都会将文本设置为所有问题一个接一个。最后一个将始终是显示的,因为它是循环中的最后一个。查看this example 中的控制台以获得更清晰的演示。
-
是的,对不起,我的意思是最后一个问题。我会更新问题
标签: javascript arrays object for-loop dom