javascript / jquery数组迭代有什么问题

时间:2014-03-12 15:17:00

标签: javascript jquery arrays

我尝试声明一个数组,推送数组集合并迭代集合

我的JS:

var colection = [];
var array = ["a1", "a2"];
colection.push(array);
array = ["b1", "b2"];
colection.push(array);

$.each(colection, function(array){
    var p = "<p>1:"+array[0] +
        "<br>2:"+array[1]+"</p>";

    $("#test").append(p);
});

我的HTML:

<div id="test">
</div>

我想要那个结果:

1:a1
2:a2

1:b1
2:b2

但仅返回:

1:undefined
2:undefined

1:undefined
2:undefined

2 个答案:

答案 0 :(得分:4)

每个语法中函数的第一个参数实际上是项的索引,因此将脚本更改为:

var colection = [];
var array = ["a1", "a2"];
colection.push(array);
array = ["b1", "b2"];
colection.push(array);

$.each(colection, function(index, array){
    var p = "<p>1:"+array[0] +
        "<br>2:"+array[1]+"</p>";

    $("#test").append(p);
});

JsFiddle:http://jsfiddle.net/9KVnM/

编辑:参考:api.jquery.com/jquery.each

谢谢凯文

答案 1 :(得分:0)

您可以在迭代中使用键值对,如<; p>

$.each(collection, function(i, array){
    var p = "<p>1:"+array[0] +
        "<br>2:"+array[1]+"</p>";

    $("#test").append(p);
});

以下是演示: http://jsfiddle.net/cubuzoa/JJ9UA/2/