Обратиться n числу объектов
Доброго времени суток, помогите, кто умеет.
Из базы берется переменное количество строк,для каждой создается объект. Есть CollapsiblePanel1 CollapsiblePanel2 ..................... CollapsiblePaneln есть общий метод метод open() Как его вызвать для каждого объекта сразу? Что-то типа такого: CollapsiblePaneli.open() где i= 1,2,3..n Спасибо тому кто откликнется. |
Лучше храните ссылки на все эти объекты в массиве.
Хотя можно и поперебирать св-ва window с заданным именем. Но в любом случае каждому объекту придется запускать этот метод. |
Возникает встречный вопрос. Как вызвать метод для содержимого переменной ???
1)при создании объектов записываю их имена в массив var Clname=new Array('CollapsiblePanel1','CollapsiblePanel2','... ....','CollapsiblePaneln'); 2)Вызываю метод for (n=0;n<Clname.length;n++) { Clname[n].open(); } В данном случае, как я понимаю, Open() вызывается для массива Clname, а не для CollapsiblePaneln... Подскажите как вызвать его для CollapsiblePaneln? |
Должен, вроде, для элемента массива. Проверьте, пожалуйста, вдруг, есть ошибка, не связанная напрямую с перебором массива.
|
Я вообще то говорил о том, что надо вообще избавиться от глобальных переменных CollapsiblePanel1 .. n, а в массиве хранить не имена, а ссылки на реальные объекты.
Но раз настаиваете: for (n=0;n<Clname.length;n++) { if (window[Clname[n]]) { window[Clname[n]].open() } } - для такого случая можно вообще не использовать массив, а сохранить n - кол-во и получать имя объекта конкатенацией постоянной части и индекса. |
Всем спасибо, получилось, что хотел!
|
Часовой пояс GMT +3, время: 18:40. |