Управление 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, время: 22:14. |