Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Объектная модель документа

Автор вопроса: Haseeb JumaniОтветов: 1

Вопрос простой, но сбивает меня с толку: когда я использую console.log(document.body) или (document.head), оба работают нормально, но когда я делаю это с document.script или document.html, эти два не работают, почему? хотя все это есть в документе?

Q2) я могу написать

document.getElementById('something')

но почему я не могу написать

document.body.getElementById('something')

хотя тело находится в документе, а элемент также в теге body, а иногда document.body работает на разных этапах скрипта

javascriptdocument

Ответы

Ответ 1 · рейтинг 6 · T.J. Crowder

getElementById - это метод document, который представляет собой объект, использующий Document. интерфейс из DOM. Это не метод для элементов (интерфейс Element из DOM и его специализация HTMLElement из HTML). document.body - это элемент (HTMLBodyElement, который является HTMLElement, который является Element), а не документ.

Некоторые методы (например, querySelector) являются методами элементов обоих document и, потому что для них имеет смысл быть (для элемента querySelector смотрит только внутри элемента, а не по всему документ). Но getElementById нет. (Может быть, но было бы немного странно ограничивать его только элементом, когда идентификаторы должны быть уникальными во всем документе.)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы