我认为我使用建议here中的for(var key in arr)解决了我的问题,但这会导致IE出现问题。现在我回到原点。
var myVariable = [];
myVariable['option-1'] = 'something';
myVariable['option-2'] = 'something else';
$.each(myVariable, function(index, value) {
alert(index + ': ' + value);
});
它不起作用。没有任何表现。有人可以编辑它以使其有效吗?
答案 0 :(得分:4)
只需使用对象而不是数组:
var myVariable = {};
答案 1 :(得分:3)
将var myVariable = [];
更改为var myVariable = {};
。
您正在使用的语法myVariable['option-1'] = 'something';
用于对象,而不是数组。
答案 2 :(得分:2)
myVariable
是一个数组。要将数据添加到数组,请使用myVariable.push('something')
。您正在使用方括号语法,这就是您通常如何向对象添加属性。
由于数组是对象,您仍然可以访问option-1
,但它不是数组的成员,它是对象的属性:myVariable['option-1']; // "something"
解决方案是将myVariable
设置为对象。 jQuery的each
方法将按预期迭代对象的属性。
答案 3 :(得分:1)
不需要jQuery。
只需使用for..in
循环(对象{}
而不是数组[]
):
for(var index in myVariable) {
var value = myVariable[index];
alert(index + ': ' + value);
}
答案 4 :(得分:1)
相反,请使用对象文字:
var myVariable = {};
// ^^
myVariable['option-1'] = 'something';
…