Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обратиться n числу объектов (https://javascript.ru/forum/misc/9347-obratitsya-n-chislu-obektov.html)

Volonda 11.05.2010 23:16

Обратиться n числу объектов
 
Доброго времени суток, помогите, кто умеет.
Из базы берется переменное количество строк,для каждой создается объект. Есть
CollapsiblePanel1
CollapsiblePanel2
.....................
CollapsiblePaneln

есть общий метод метод open()
Как его вызвать для каждого объекта сразу?

Что-то типа такого:
CollapsiblePaneli.open() где i= 1,2,3..n
Спасибо тому кто откликнется.

micscr 12.05.2010 08:04

Лучше храните ссылки на все эти объекты в массиве.
Хотя можно и поперебирать св-ва window с заданным именем.
Но в любом случае каждому объекту придется запускать этот метод.

Volonda 13.05.2010 22:09

Возникает встречный вопрос. Как вызвать метод для содержимого переменной ???


1)при создании объектов записываю их имена в массив

var Clname=new Array('CollapsiblePanel1','CollapsiblePanel2','... ....','CollapsiblePaneln');


2)Вызываю метод

for (n=0;n<Clname.length;n++)
{
Clname[n].open();
}

В данном случае, как я понимаю, Open() вызывается для массива Clname, а не для CollapsiblePaneln...

Подскажите как вызвать его для CollapsiblePaneln?

subzey 13.05.2010 23:39

Должен, вроде, для элемента массива. Проверьте, пожалуйста, вдруг, есть ошибка, не связанная напрямую с перебором массива.

micscr 14.05.2010 08:43

Я вообще то говорил о том, что надо вообще избавиться от глобальных переменных CollapsiblePanel1 .. n, а в массиве хранить не имена, а ссылки на реальные объекты.

Но раз настаиваете:
for (n=0;n<Clname.length;n++)
{
  if (window[Clname[n]]) {
    window[Clname[n]].open()
  }
}


- для такого случая можно вообще не использовать массив, а сохранить n - кол-во и получать имя объекта конкатенацией постоянной части и индекса.

Volonda 16.05.2010 17:00

Всем спасибо, получилось, что хотел!


Часовой пояс GMT +3, время: 18:40.