Управление html кодом
Здравствуйте, есть ли способ управления дочерними элементами div-a на подобие управления элементами в массиве? К примеру, блок с ссылками. Возможно ли, чтобы javascript перебирал эти ссылки в цикле, как в случае с массивом?
|
Цитата:
<div> <a href='#'>Один</a> <a href='#'>Два</a> <a href='#'>Три</a> </div> <script type="text/javascript"> var o=document.getElementsByTagName('div')[0].getElementsByTagName('a'); for (var i=0; i<o.length; i++) alert(o[i].innerHTML); </script> |
Большое спасибо, можете пояснить что значит [0] там, где идёт выборка дива? Обозначение массива?
|
Все очень просто, функция document.getElementsByTagName возвращает массив, сколько бы она элементов ни нашла. Не найдет ни одного, вернет пустой. Найдет ровно один элемент - вернет массив из одного элемента. У самого массива метода getElementsByTagName нету, поэтому при попытке обратиться к нему интерпретатор на тебя ругнется, можешь попробовать. А вот у элемента массива такое свойство есть поэтому мы к нему и обращаемся
|
В моём случае требуется достать элементы из конкретного блока с id. Попробовал так :
var o=document.getElementById('dots')[0].getElementsByTagName('a'); Но переменная пуста. В чем проблема ? |
Цитата:
getElementById() не возвращает массива... Он возвращает ссылку на конкретный ДОМ элемент. |
<div id='dots'> <a href='#'>Один</a> <a href='#'>Два</a> <a href='#'>Три</a> </div> <script type="text/javascript"> var o=document.getElementById('dots').getElementsByTagName('a'); for (var i=0; i<o.length; i++) alert(o[i].innerHTML); </script> |
Теперь всё понятно, спасибо.
|
Часовой пояс GMT +3, время: 16:46. |