2013-06-28 63 views
1

這是一個用於jQuery庫的數據示例,但是我的數據是動態的,而且沒有硬編碼。如何動態擴展對象?

var tree_data = { 
    'for-sale' : {name: 'For Sale', type: 'folder'} , 
    'vehicles' : {name: 'Vehicles', type: 'folder'} , 
    'rentals' : {name: 'Rentals', type: 'folder'} , 
    'real-estate' : {name: 'Real Estate', type: 'folder'} , 
    'pets' : {name: 'Pets', type: 'folder'} , 
    'tickets' : {name: 'Tickets', type: 'item'} , 
    'services' : {name: 'Services', type: 'item'} , 
    'personals' : {name: 'Personals', type: 'item'} 
} 

所以,我的問題是,如果我有這樣的例子:

var tree_data = { 
     'for-sale' : {name: 'For Sale', type: 'folder'} , 
     'vehicles' : {name: 'Vehicles', type: 'folder'} 
} 

我將如何添加

rentals' : {name: 'Rentals', type: 'folder'} , 
     'real-estate' : {name: 'Real Estate', type: 'folder'} 

要tree_data它已經創建後?

我還需要爲此代碼執行此操作,如果您可以提供兩個示例。

tree_data['for-sale']['additionalParameters'] = { 
    'children' : { 
     'appliances' : {name: 'Appliances', type: 'item'}, 
     'arts-crafts' : {name: 'Arts & Crafts', type: 'item'}, 
     'clothing' : {name: 'Clothing', type: 'item'}, 
     'computers' : {name: 'Computers', type: 'item'}, 
     'jewelry' : {name: 'Jewelry', type: 'item'}, 
     'office-business' : {name: 'Office & Business', type: 'item'}, 
     'sports-fitness' : {name: 'Sports & Fitness', type: 'item'} 
    } 
} 
+0

看一看jQuery的'延長' - 它應該只是你需要:) http://api.jquery.com/jQuery.extend/ – Archer

+1

所以你的問題是'我如何添加屬性到一個對象'? – zeroflagL

+0

@zeroflagL猜猜所以。我不是來自javascript世界。最後我檢查了你可以在SO上提出一些基礎知識。 – Kyle

回答

2

如果你正在使用jQuery ....嘗試使用$ .extend()

http://api.jquery.com/jQuery.extend/

否則......

var tree_data = { 
     'for-sale' : {name: 'For Sale', type: 'folder'} , 
     'vehicles' : {name: 'Vehicles', type: 'folder'} 
}; 

tree_data['rentals'] = {name: 'Rentals', type: 'folder'}; 
tree_data['real-estate'] = {name: 'Real Estate', type: 'folder'}; 
+0

謝謝,我得到它的工作。我嘗試了兩種方法,並且遇到了jQuery問題,我無法找到一種方法使屬性名稱(for-sale/vehicles)成爲變量,但是我可以在tree_data中爲該名稱添加一個變量[ varName],所以我得到了這個工作,我需要它。 對於jQuery方法,有沒有辦法將propertyname命名爲變量?謝謝您的幫助。 – Kyle

+0

不是我所知道的。更有可能的是,你必須使用變量來創建一個新對象,然後使用$ .extend()將新對象與舊對象連接起來,但是如果你要這樣做,那麼你可能只是按照你現在這樣做的方式來做。很高興有幫助。 –