如何将数组中的对象迭代到许多元素中?

时间:2014-11-14 02:11:48

标签: javascript jquery arrays

这个问题的答案可能非常简单,但我无法看到它。

我有一个对象数组,其信息我想在各个地方显示。我想将每个问题放入h1节,其中我有五节。但是,我想出的代码只是将数组中最后一个对象的问题插入每个部分h1,即,他们都说"问题5"。我无法弄清楚原因。如何将每个问题打印到不同的部分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);
    }
});

1 个答案:

答案 0 :(得分:3)

.each()回调函数作为第一个参数传递index。您可以使用它来确定要显示的问题,而不必遍历所有问题。

所以将代码更改为:

var questions = [
   {question: "Question1", choices: ["A","B","C"], answer: 0},
   //etc. x 5
];

$('section h1').each(function(index) {
    $(this).text(questions[index].question);
});

编辑:添加有关如何填充选项的其他示例。

您需要循环显示每个部分,然后找到该部分中的h1li来填充。

像这样:

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];
    });
});