Javascript 如何将数组中的对象迭代为多个元素?
答案可能很简单,但我就是看不出来 我有一个对象数组,我想在不同的地方显示它们的信息。我想把每个问题放到h1部分,我有五个问题。然而,我提出的代码只是将数组中最后一个对象的问题插入到每个部分h1中,也就是说,它们都说“问题5”。我不明白为什么。如何将每个问题打印到不同的部分Javascript 如何将数组中的对象迭代为多个元素?,javascript,jquery,arrays,Javascript,Jquery,Arrays,答案可能很简单,但我就是看不出来 我有一个对象数组,我想在不同的地方显示它们的信息。我想把每个问题放到h1部分,我有五个问题。然而,我提出的代码只是将数组中最后一个对象的问题插入到每个部分h1中,也就是说,它们都说“问题5”。我不明白为什么。如何将每个问题打印到不同的部分 var questions = [ {question: "Question1", choices: ["A","B","C"], answer: 0}, //etc. x 5 ]; $('section h1'
var questions = [
{question: "Question1", choices: ["A","B","C"], answer: 0},
//etc. x 5
];
$('section h1').each(function() {
for (var i = 0; i < questions.length; i++) {
$(this).text(questions[i].question);
}
});
var问题=[
{问题:“问题1”,选项:[“A”、“B”、“C”],答案:0},
//等x 5
];
$('section h1')。每个(函数(){
对于(var i=0;i
调用.each()
回调函数会传递一个索引作为第一个参数。您可以使用它来确定显示哪个问题,而不必在所有问题上循环
因此,请将代码更改为:
var questions = [
{question: "Question1", choices: ["A","B","C"], answer: 0},
//etc. x 5
];
$('section h1').each(function(index) {
$(this).text(questions[index].question);
});
编辑:添加有关如何填充选项的其他示例
您需要在每个部分上循环,然后在该部分中找到h1
和li
来填充
像这样:
var questions = [
{question: "Question1", choices: ["A","B","C"], answer: 0},
//etc. x 5
];
$('section').each(function(index) {
var question = questions[index], $section = $(this);
$section.find('h1').text(question.question);
$section.find('li').text(function (index) {
return question.choices[index];
});
});
OP需要一个基于数组[questions]长度的索引,而不是h1数组列表。@ProllyGeek:这没有意义。我相信OP想要的正是格雷格尔给他们的。将第一个问题放在第一个h1中,第二个问题放在第二个h1中,依此类推…@MattBurland是的,我现在发现它是有意义的,尽管这个问题问得不恰当。@key如果它对你有用,不要忘了接受它(单击答案旁边的勾选框)。欢迎来到StackOverflow@格雷格尔会的。我可以问一下,你会如何将问题。选择重复到每个部分的不同li中?相同的模式,但文本(问题[index].选项[index])不起作用。