2011-07-06 78 views
0
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的自動遞增數。但它一直給我命名。如何在一個對象中創建一個數組名稱變量

回答

4
data2 = {}; 
data2[i] = { 
    "id": id, 
    "level": level, 
    "name": name 
}; 
+0

謝謝主席先生。 :] –

+0

沒問題! =} –

1

屬性名稱在Javascript字面上治療,是否有與該名稱的任何變量。

但是,您在循環的每次迭代中重新定義對象。您的代碼也許應該是這樣的:

data2[i] = { 
    id: id, 
    level: level, 
    name: name 
}; 

請注意,我已經刪除了數組文本 - 在[]對象周圍的文字。我無法想象你需要它,但如果你真的這樣做,你總是可以把它放回去。

1

也許你應該做的:

 data2[i] = [{ 
       "id": id, 
       "level": level, 
       "name": name 
       }]; 
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); 
相關問題