2012-10-11 255 views
0

我有一個內部AJAX調用的對象,我無法將新屬性添加到其包含另一個對象的屬性。將對象動態添加到另一個對象的屬性

這裏是我的嘗試:

$.post('/home/save.json', {obj:obj}, function(data) { 
    var qu = {}; 
    qu["Id"] = "some value"; 
    qu["Type"] = "some value"; 
    qu["Name"] = "some value" 
    qu["Variants"] = data["Variants"] 
    if (data['Subvariant']) { 
     qu["Variants"]["Subvariant"] = data['Subvariant'] 
    } 
    // ... 
}); 
+0

你確定'data [「Variants」]'實際上是一個對象嗎?你的數據的相關部分(JSON)是什麼樣的?只要data [「Variants」]是一個對象,你就可以工作。 –

回答

1

你錯過了一些分號,我會用點號

var qu = {}; 
qu.Id = "some value"; 
qu.Type = "some value"; 
qu.Name = "some value"; 
qu.Variants = data.Variants; 
if (data.Subvariant !== undefined && data.Subvariant !== null) { 
    qu.Variants.Subvariant = data.Subvariant; 
} 

或者,您也許意味着要檢查data.Variants.Subvariant而不是data.Subvariant

+0

謝謝,點符號是正確的選擇! –

+1

@Alega:點和括號之間沒有區別。它們是等價的。這段代碼的工作原理沒有意義,但你的代碼卻沒有。你也必須改變別的東西。 –