我是jquery的新手。我想创建一个这样的数组
var pos=[];
pos['div1']['left']=200;
pos['div2']['left']=400;
pos['div3']['left']=600;
答案 0 :(得分:1)
代码试图像关联数组一样使用数组。
当使用语法pos['div1']['left']
时,解释器期望拥有div1属性的对象具有left属性。这与严格使用索引的整数的普通数组完全不同。普通数组不允许Strings
用于访问数组的元素。
另一方面,关联数组或对象提供了这种灵活性。它们还允许对象嵌套在对象中。我相信这种数据结构可以更好地满足您的需求:
//Initial Object
var pos={};
//assign an object with a left property to the property div1 on the pos object
pos.div1 = {left:200};
pos.div2 = {left:400};
pos.div3 = {left:600};
alert(pos.div1.left);
//This data structure could be declared as one object literal upfront
var pos2 = {
div1: {
left: 200
},
div2: {
left: 400
},
div3: {
left: 600
}
};
alert(pos.div2.left);
//You could also make an array of objects for easier iteration
var pos3 = [
{
name: "div1",
left: 200
},{
name: "div2",
left: 400
},{
name: "div3",
left: 600
}
];
alert(pos3[2].name);
JS小提琴: http://jsfiddle.net/u9QXs/
答案 1 :(得分:1)
您提出的方案看起来不像multi-dimensional
数组,
但是,您仍然可以通过更改代码来实现您的需求
var pos= {'div1' :
{'left' : 200},
'div2' :
{'left' : 400}
.
.
.
};
您可以通过
访问它 alert(pos.div1.left) //200