2014-09-17 4 views
-4

Я пытаюсь увеличить объект в соответствии с значением i.Как увеличить объект внутри объекта?

так:

HTML

<div id="table"> 
    <a href="" id="foo1"></a> 
    <a href="" id="foo2"></a> 
    <a href="" id="foo3"></a> 
</div> 

JS

$('#table a').each(function(i){ 
    room = {}; 
    room.table+i = {}; 
    room.table+i.chairs = $('#table a:eq('+i+')').attr('id'); 
}); 

Но это не работает. Я искал его и не нашел ответа. Некоторая помощь будет оценена по достоинству.

+1

Что вы ожидаете 'room.table + я = {};' делать? Что вы подразумеваете под «increment object»? Потому что это не имеет смысла. –

+1

room.table + i = {}; что не так –

ответ

2

Try:

room['table' + i] = {}; 
room['table' + i].chairs = $('#table a:eq('+i+')').attr('id'); 
+0

Спасибо, чувак, это то, что он ищет! Но когда я пытаюсь 'console.log (room)' вне '$ .each', он возвращает мне только последнее значение, например:' table3'. Как я могу вернуть все значения? –

+1

просто поместите 'room = {}' перед '$ .each', потому что он фактически перезагружается в каждом цикле – meriadec

+0

и предпочитает избегать использования глобальных, используя' var room = {} '. см. здесь http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals – meriadec

Смежные вопросы