Сохранить элементы в массив
Только начал изучать JS. Не могу найти ответ на следующий вопрос.
Хочу создавать обьекты на странице динамичесски и в последующем их двигать в зависимости от класса. Думал делать так: <script language="javascript" type="text/javascript"> var i=0; // global function create_objects() { var obj[i] = document.createElement('div'); obj[i].className = "object_1"; parent = document.getElementsByTagName('body')[0]; parent.appendChild(obj[i]); window.i++; } Перед </html> вызываю <script type="text/javascript"> window.onload = create_object(); </script> Если сделать всё без масивов, а просто var obj = document.createElement('div')и т.д., то всё работает хорошо. Но с массивами было бы удобно хранить обьекты и в дальнейшем взаимодействовать с ними. Можно ли сделать так, как я хочу? И второй вопрос. Создал 2 обьекта с одинаковым классом. Они успешно отобразились на экране... Потом попробовали поменять их позиции следующим образом. function move_object() { var a = document.getElementsByClassName(object_1'); for(i=0;i<2;i++) { var objs = document.getElementsByClassName('object_1')[i]; objs.style.marginTop = "200px"; } А оно видит только getElementsByClassName('object_1')[0], а getElementsByClassName('object_1')[1] нет... В чем может быть причина? } |
Цитата:
А в чем причина использования именно class, а не id например? |
Цитата:
Хочу сделать в даный момент, чтобы на экране отображался эфект пробегания планет по экрану. Взял картинки 3 планет, сохранил. Хочу на них создать 3 класса и дальше создавать обьекты этих классов и двигать их. Чтобы было много планет. Потом одни удалять, другие создавать и т.д. Для этого решил попробовать работать с массивами, чтобы проще было... А никак... |
Цитата:
Цитата:
кроме того, получить доступ к body можно намного проще: document.body Цитата:
кроме того, create_object() - это вызов функции, а ты собирался назначить обработчик события: window.onload = create_object; Цитата:
var planets = []; var names = ['Mercury', 'Venus', 'Earth']; for( var i=0; i<names.length; i++ ){ var planet = document.createElement('div'); planet.className = 'planet'; planet.innerHTML = names[i]; document.body.appendChild( planet ); planets.push( planet ); } Цитата:
Цитата:
Цитата:
<!DOCTYPE HTML> <html> <head> </head> <body> <div class="object_1"></div> <div class="object_1"></div> <script> alert(document.getElementsByClassName('object_1').length); </script> </body> </html> |
x-yuri,
Спасибо большое за такой информативный ответ. После него все проблемы и вопросы отпали. как ты определил, что оно не видит getElementsByClassName('object_1')[1]? Оно не может не видеть Я что-то натупил. Всё получилось. |
Часовой пояс GMT +3, время: 22:55. |