Как работает childNodes

Застрял, и не могу до конца понять, как всё-таки работает childNodes. У меня есть очень простая форма:

<!DOCTYPE HTML>
<html>
<body>
<form name="search">
    <label>Search the site:
        <input type="text" name="search">
    </label>
    <input type="submit" value="Search!">
</form>


</body>
</html>
  1. Сначала запрашиваю весь нодлист бади, в котором форму, можно найти по запросу document.body.childNodes[1] и тут всё понятно. Но почему по запросу document.body.childNodes[1][0] выдаёт инпут? Я ожидал, что это будет пробельный символ "text". В крайнем случае label если text проигнорируется.

Фрагмент кода из консоли хрома


Ответы (1 шт):

Автор решения: Ruslan Mart

Потому что

document.body.childNodes[1]

вернёт элемент формы

Сама форма представляет из себя псевдоколлекцию, в которой есть ключи на элементы формы (ключ = имя поля), а также ключи в качестве индекс (0 - первый элемент формы, 1 - второй элемент формы и т.д.) https://developer.mozilla.org/ru/docs/Web/API/HTMLFormElement

В Вашем случае, Вы обращаетесь к форме, а затем ко второму полю этой формы.

Если хотите получить текст из label, то Вам нужно написать:

document.body.childNodes[1].childNodes[1].textContent
→ Ссылка