首先,如果我的术语有错,请对不起,如果有,请你纠正我?
我正在尝试遍历以下javascript数组。
var pieData2 = [
{
label: 'wow',
value: 30,
color:"#F38630"
},
{
label: 'wow2',
value : 10,
color : "#E0E4CC"
},
{
label: 'wow3',
value : 100,
color : "#69D2E7"
}
];
我正在尝试将标签和颜色写入单独的div中。我尝试了以下概念,但没有在哪里。
$.each( pieData2[0], function( key, value ) {
alert( key + ": " + value );
});
答案 0 :(得分:5)
jQuery.each()
函数用于迭代集合,例如数组中的元素或对象的属性。在你的情况下,它迭代一个对象数组。在您的代码中,pieData2
是您的数组,因此您希望将其作为第一个参数传递给$.each()
。第二个参数是一个将处理每次迭代的函数,它有两个参数:index
和value
(尽管你可以根据自己的意愿命名它们。)
$.each(pieData2, function(index, value) {
// index will be 0, 1, 2
// value will be equivalent to pieData2[0], pieData2[1], pieData2[2]
console.log(value.label); // outputs wow, wow2, wow3
});
正如在另一个答案中使用的那样,您也可以使用this
关键字来引用正在为该次迭代查看的元素,因此上述代码中的this
和value
是一样的。
答案 1 :(得分:3)
http://jsfiddle.net/X5r8r/1119/
var pieData2 = [
{
label: 'wow',
value: 30,
color:"#F38630"
},
{
label: 'wow2',
value : 10,
color : "#E0E4CC"
},
{
label: 'wow3',
value : 100,
color : "#69D2E7"
}
];
$.each( pieData2, function( key, value ) {
alert( key + ": " + value['label'] +" value: " + value['value']);
});
答案 2 :(得分:1)
每个都很好,但你需要在pieData2的第一个元素上循环而不是在pieData2上...
$.each( pieData2, function() {
alert( this.label + ": " + this.value );
});
答案 3 :(得分:1)
试试这个
$.each( pieData2, function(index) {
alert("label = " +pieData2[index].label+ " color = " +pieData2[index].color);
});
答案 4 :(得分:1)
你不需要jQuery。在真的不需要jQuery的情况下,我并不是真的建议它。那时候它只是毫无意义。尽可能使用常规JS,在需要的地方使用jQuery。
for (var i = 0; i < pieData2.length; i++) {
alert(pieData2[i].label + ' : ' + pieData2[i].value);
}
如果你真的想使用jQuery,因为$.each
可以遍历数组和对象,你可以使用它迭代数组并提醒每个。
这将遍历数组中的每个对象并提醒每个键,值对......
$.each(pieData2, function (key, obj) {
alert(obj.label + ' : ' + obj.value);
});
如果你需要遍历数组并遍历每个对象(如果你不知道长度),那么你可以这样做:
for (var i = 0; i < pieData2.length; i++) {
for (var prop in pieData2[i]) {
if (pieData2[i].hasOwnProperty(prop)) {
alert(prop + ' : ' + pieData2[i][prop]);
}
}
}
或
$.each(pieData2, function(obj) {
$.each(pieData2[obj], function(key, value) {
alert(key + ' : ' + value);
});
});