2013-06-28 2 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, что я не мог найти способ сделать имя свойства (для продажи/транспортные средства) переменной, но я смог поместить переменную для имени в tree_data [ varName], поэтому я получил это, чтобы работать, как мне это нужно. Для метода jQuery существует ли способ назвать имя свойства переменной? Спасибо за помощь. – Kyle

+0

Не то, чтобы я знал. Скорее всего, вам придется использовать переменную для создания нового объекта, а затем использовать $ .extend() для присоединения к этому новому объекту со старым, но если вы собираетесь это сделать, то вы можете просто просто сделайте это так, как вы делаете это сейчас. Рад помочь. –