我有一个图像数组,其中有许多图像。不固定,可能是一个或两个或8.当我有固定数量的图像,然后我使用的代码是这样的
var details = {
image1: {
position: 0,
title: $slideDiv.children().eq(0).attr("alt")
},
image2: {
position: -400,
title: $slideDiv.children().eq(1).attr("alt")
},
image3: {
position: -800,
title: $slideDiv.children().eq(2).attr("alt")
},
image4: {
position: -1200,
title: $slideDiv.children().eq(3).attr("alt")
},
image5: {
position: -1600,
title: $slideDiv.children().eq(4).attr("alt")
}
}; //end of var details
但现在我有阵列中的图像。我希望细节对象添加的图像等于数组中的图像数量。我试过这样的事情
var details = {};
var position = 0;
images.each(function(index){
details.("image" + index) : {
position: position,
title: $slideDiv.children().eq(index).attr("alt")
}
position += -400;
}) ; //end of .each()
我想要做的逻辑是,如果我在图像数组中有两个图像,它应该变成这样的东西
var details = {
image1: {
position: 0,
title: $slideDiv.children().eq(1).attr("alt")
},
image2: {
position: -400,
title: $slideDiv.children().eq(2).attr("alt")
}
}
但这不起作用。当然我的语法错了
details.("image" + index) : {..}
我该怎么做?
由于
答案 0 :(得分:1)
在Javascript中,您可以通过以下两种方式访问属性:
obj.property
相当于
obj["property"]
所以在你的情况下,你会想这样写:
details["image"+index]
答案 1 :(得分:0)
正确的语法是:details['image' + index]
以后可以通过details.image0
,details.image1
等进行访问。
所以它应该是:details['image' + index] = {prop: val}