Навігація по DOM
Ноди та елементи
HTML-код складається з вузлів двох типів: ноди і елементи.
Поексперементуємо на такому шматку кода:
<h1>Hello</h1>
<h2>
Заголовок
<span style="color: red;">з червоним</span>
текстом
</h2>
<div>
<p>Посилання на <a href="http://google.com">google</a>.</p>
<p><span>1</span> <span>2</span> <span>3</span></p>
<p>
<span>1</span>
<span>2</span>
<span>3</span>
</p>
</div>
Виведіть в консоль дерево нод та дослідіть його:
console.dir(document.body.childNodes);
Спробуйте змінити nodeValue різних елементів.
Виведіть в консоль дерево елементів та дослідіть його:
console.dir(document.body.children);
Навігація по DOM
Окрім методів .getElement* та .querySelector* пошук елементів можна здійснювати наступним чином:
.parentNode - батьківська нода.
.childNodes - дочірні ноди.
.firstChild - перша дочірня нода.
.lastChild - остання дочірня нода.
.previousSibling - попередня нода-сусід.
.nextSibling - наступна нода-сусід.
В сучастому JS з нодами працюють рідко, цей спосіб вважається застарілим, краще працювати з елементами.
Для навігації по елементам (тегам) існують такі властивості:
.parentElement - батьківський елемент.
.children - дочірні елементи.
.firstElementChild - перший дочірній елемент.
.lastElementChild - останній дочірній елемент.
.previousElementSibling - попередій сусідній елемент.
.nextElementSibling - наступний сусідній елемент.
Додаткові матеріали
Елегантний спосіб перебрати всі дочірні елементи першого порядку:
for ( let elem = parent.firstChild; elem; elem = elem.nextSibling ) {
...
}