Сохранить элементы в массив
Только начал изучать 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, время: 07:20. |