how to make an array name a variable in an object
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);
});
In the object data2 i want the array i to be an auto increasing number based on the .each. But it keeps naming it i.
data2 = {};
data2[i] = {
"id": id,
"level": level,
"name": name
};
Property names are treated literally in Javascript, whether or not there are any variables with that name.
However, you redefine the object on every iteration of the loop. Your code should probably look like this:
data2[i] = {
id: id,
level: level,
name: name
};
Note that I have removed the array literal -- the []
around the object literal. I can't imagine you need it, but you could always put it back in if you genuinely did.
Maybe you should do:
data2[i] = [{
"id": id,
"level": level,
"name": name
}];
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);
精彩评论