自从我使用对象以来已经有一段时间了,所以我需要刷新记忆。我需要帮助的是如何在每个循环中创建一个具有多个属性的对象。以下是我到目前为止所尝试的内容,但这显然不正确。
var imgs = {},
i = 0;
$('.img').each(function() {
i++;
imgs['img' + i]['src'] = src; // doesn't work
// imgs['img' + i] = src; <- works but I want several properties for every image.
});
所需的输出:
imgs: {
img1: {
src: 'http://...',
otherProp: '...'
},
img2: {
src: 'http://...',
otherProp: '...'
},
and so on...
}
答案 0 :(得分:1)
您应该使用imgs['img' + i] = {};
创建一个新对象,并将src
属性及其值设置为该对象。
类似
$('.img').each(function() {
i++;
imgs['img' + i] = {}; //on each iteration created the new object
imgs['img' + i]['src'] = src;
});
答案 1 :(得分:1)
这应该是最简单的解决方案:
var imgs = {};
$('.img').each(function(index) {
imgs['img' + index] = {
src: src,
otherProp: ...
...
};
});
答案 2 :(得分:0)
尝试:
imgs['img' + i]['src'] = $(this).attr('src');