Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   DOM, поиск методом getElementsByTagName (https://javascript.ru/forum/misc/35360-dom-poisk-metodom-getelementsbytagname.html)

jsani 08.02.2013 17:40

DOM, поиск методом getElementsByTagName
 
Привет.
Начал изучать JS на этом сайте. Добрался до раздела исполдьзования объектной модели DOM и не могу разобраться почему не получается выполнить метод:

Задача: найти всё что содержиться в контейнерах Li.

alert(document.getElementsByTagName('div')[0].getElementsByTagName('li'));


если я правильно понимаю вышенаписанную запись то получается что ищутся первый контейнер на странице DIV (он у нас как раз ищется по нулевому элементу массива). Далее у найденного дива получаем все li.


<div>
<li>Строка 1</li>
<li>Строка 2</li>
<li>Строка 3</li>
</div>


Поидее он в алерте должен вывести всё на экран все 3 строки но почему то не может этого сделать. ЧТо делаю не так ?
Код грубый. Тоесть JS код у меня в head как положен заключён в функцию.

nerv_ 08.02.2013 17:49

Цитата:

Сообщение от jsani (Сообщение 232568)
<div>
<li>Строка 1</li>
<li>Строка 2</li>
<li>Строка 3</li>
</div>

предлагаю начать с изучения html

vadim5june 08.02.2013 17:53

Вы ничего не выводите в алерте
window.onload=function(){
var els=document.getElementsByTagName('div')[0].getElementsByTagName('li');
alert(els);
for(var i=0;i<els.length;i++)
alert(els[i].outerHTML)
}

jsani 08.02.2013 17:54

ответ на предложение
 
Цитата:

Сообщение от nerv_ (Сообщение 232569)
предлагаю начать с изучения html

Ты имел ввиду то что я упустил контейнер >ul> ?

Magneto 08.02.2013 18:08

Цитата:

Сообщение от jsani
Ты имел ввиду то что я упустил контейнер >ul>

Да, он это имеет ввиду.

Цитата:

Сообщение от vadim5june
Вы ничего не выводите в алерте

Почему это он ничего не выводит? Он выводит в алерте коллекцию ДОМ-элементов. Что в процессе преобразований выведет [object NodeList]

<div>
    <li>Строка 1</li>
    <li>Строка 2</li>
    <li>Строка 3</li>
</div>

<script>
    alert(document.getElementsByTagName('div')[0].getElementsByTagName('li'));
</script>

vadim5june 08.02.2013 18:14

Цитата:

Сообщение от Magneto
Почему это он ничего не выводит?

Да коллекцию выводит а не строки как он хотел

jsani 08.02.2013 18:17

Цитата:

Сообщение от vadim5june
vadim5june

Спасибо. На основе этого премера теперь полностью разобрался с механикой.


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