childNodes, firstChild, lastChild



childNodes содержит список всех детей, включая текстовые узлы.



Пример выше последовательно выведет детей document.body.



Обратим внимание на маленькую деталь. Если запустить пример выше, то последним будет выведен элемент <script>. На самом деле, в документе есть ещё «какой-то HTML-код», но на момент выполнения скрипта браузер ещё до него не дошёл, поэтому скрипт не видит его.



Свойства firstChild и lastChild обеспечивают быстрый доступ к первому и последнему дочернему элементу.



Они, по сути, являются всего лишь сокращениями. Если у тега есть дочерние узлы, условие ниже всегда верно:



elem.childNodes[0] === elem.firstChild

elem.childNodes[elem.childNodes.length - 1] === elem.lastChild



Для проверки наличия дочерних узлов существует также специальная функция elem.hasChildNodes().



#браузер #документ #dom_навигация