开发者

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);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜