var data = {};
$('.content').each(function(i){
var id = $(this).attr('id'),
level = $(this).attr('level'),
name = $(this).find('textarea').val(),
data2 = {
i:[
{
"id": id,
"level": level,
"name": name
}
]
};
$.extend(data, data2);
});
在对象data2中,我希望数组i是基于.each的自动增加数。但它一直在命名它。
答案 0 :(得分:4)
data2 = {};
data2[i] = {
"id": id,
"level": level,
"name": name
};
答案 1 :(得分:1)
无论是否有任何具有该名称的变量,都会在Javascript中逐字处理属性名称。
但是,在循环的每次迭代中重新定义对象。您的代码应该如下所示:
data2[i] = {
id: id,
level: level,
name: name
};
请注意,我已删除了数组文字 - 对象文字周围的[]
。我无法想象你需要它,但如果你真的这么做的话,你总是可以把它放回去。
答案 2 :(得分:1)
也许你应该这样做:
data2[i] = [{
"id": id,
"level": level,
"name": name
}];
答案 3 :(得分:1)
var data = {};
$('.content').each(function(i) {
var id = $(this).attr('id'),
level = $(this).attr('level'),
name = $(this).find('textarea').val(),
data2 = {};
data2[i] = [{
"id": id,
"level": level,
"name": name}];
};
$.extend(data, data2);