1

假设我divs的 HTML 中有三个

<div>
    <h2>This is div 1</h2>
</div>
<div>
    <h2>This is div 2</h2>
</div>
<div>
    <h2>This is div 3</h2>
</div>

另外,我有一个由三个嵌套数组组成的 JavaScript 数组:

var array = [ 
    [ "<p>Bla bla</p>", "<p>Other stuff</p>"], 
    [ "<p>Another paragraph</p>"], 
    [ "<p>Yet another</p>", "<p>yes</p>", "<p>yes</p>" ] 
    ];

我确信这个数组总是有三个成员,就像divs.

我想要做的是将主数组的每个嵌套数组的内容附加到具有相应编号的 div 中。

就像是:

for ( var i = 0; i < array.length; i++ ) {
    $('div').eq( i ).append( array[i] );
}

上面的代码不起作用,但我认为我的意图很明确。

您可以在这里找到一个工作示例 => http://jsfiddle.net/G8BsK/

谢谢。

4

3 回答 3

5

改变这个...

.append( array[i] );

对这个……

.append( array[i].join('') );

尽管我强烈建议将 DOM 选择排除在循环之外,并将其缓存。

var divs = $('div');
for ( var i = 0; i < array.length; i++ ) {
    divs.eq( i ).append( array[i].join('') );
}

...或者只是这样做...

$('div').append(function(i) {
    return array[i].join('');
});
于 2012-05-02T16:28:58.333 回答
0

你应该做

var array = [
    ["<p>Bla bla</p>", "<p>Other stuff</p>"],
    ["<p>Another paragraph</p>"],
    ["<p>Yet another</p>", "<p>yes</p>", "<p>yes</p>"]
    ];

for (var i = 0; i < array.length; i++) {
    var arr = array[i];
    for (var m = 0; m < arr.length; m++) {
        $('div').eq(i).append(arr[m]);
    };
}

http://jsfiddle.net/G8BsK/2/

于 2012-05-02T16:33:02.210 回答
0

这是因为附加的数组值是数组本身,而不是 html 字符串。你必须加入他们。

    for ( var i = 0; i < array.length; i++ ) {
        $('div').eq( i ).append( array[i].join('') );
    }

将工作。唯一的区别是 'array[i].join('')

于 2012-05-02T16:42:29.340 回答