【发布时间】:2014-12-11 12:02:50
【问题描述】:
我想使用 JavaScript 和 jQuery 从 html 元素创建一个对象。
我要创建的对象是
{
array:[{infraStructureType: 'value', hostId: 'value'}, {infraStructureType: 'value', hostId: 'value'}]
}
所以我创建上述对象的代码是
var obj = {}, dataObj = {compareESX: []};
$('.checkBox:checked').each(function () {
obj.infraStructureType = $(event.target).attr('hostId');
obj.hostId = $(event.target).attr('infrastructureType');
console.log(obj);
dataObj.compareESX.push(obj);
console.log(dataObj);
});
在上面的代码中,“console.log(obj)”给出了正确的输出,但是当我将它推入数组“dataObj.compareESX”时 只有最后一个'obj'的信息被推送每个循环执行的次数。
【问题讨论】:
-
你从哪里得到
event.target?您遍历每个检查的输入,但在每次迭代中从同一个对象获取属性。我认为你应该改用$(this).attr(...)。
标签: javascript jquery html