Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Управление html кодом (https://javascript.ru/forum/jquery/44912-upravlenie-html-kodom.html)

Иззет 06.02.2014 14:22

Управление html кодом
 
Здравствуйте, есть ли способ управления дочерними элементами div-a на подобие управления элементами в массиве? К примеру, блок с ссылками. Возможно ли, чтобы javascript перебирал эти ссылки в цикле, как в случае с массивом?

ksa 06.02.2014 14:46

Цитата:

Сообщение от Иззет
Возможно ли, чтобы 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>

Иззет 06.02.2014 15:27

Большое спасибо, можете пояснить что значит [0] там, где идёт выборка дива? Обозначение массива?

Makarov 06.02.2014 15:46

Все очень просто, функция document.getElementsByTagName возвращает массив, сколько бы она элементов ни нашла. Не найдет ни одного, вернет пустой. Найдет ровно один элемент - вернет массив из одного элемента. У самого массива метода getElementsByTagName нету, поэтому при попытке обратиться к нему интерпретатор на тебя ругнется, можешь попробовать. А вот у элемента массива такое свойство есть поэтому мы к нему и обращаемся

Иззет 06.02.2014 16:20

В моём случае требуется достать элементы из конкретного блока с id. Попробовал так :
var o=document.getElementById('dots')[0].getElementsByTagName('a');


Но переменная пуста. В чем проблема ?

ksa 06.02.2014 16:24

Цитата:

Сообщение от Иззет
В чем проблема ?

В непонимании тобой того, что ты используешь. Даже пример тестовый не делаешь, кидаешь огрызок...
getElementById() не возвращает массива... Он возвращает ссылку на конкретный ДОМ элемент.

ksa 06.02.2014 16:25

<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>

Иззет 06.02.2014 16:48

Теперь всё понятно, спасибо.


Часовой пояс GMT +3, время: 16:46.