Почему getElementById не работает с элементами внутри элемента документа?
Если вы используете getElementById
с документом типа - document.getElementById
, то он всегда работает.
Однако, если мы выполняем то же самое в элементе, скажем x
как x.getElementById
, тогда он возвращает ошибку.
Необычная вещь в том, что getElementsByClassName
и getElementsByTagName
работают над элементами, однако getElementById
не работает!
Ответы
Ответ 1
Идентификаторы контейнера должны быть уникальными, поэтому нет причин для поиска объекта по идентификатору в другом контейнере. Вот почему вам нужно только document.getElementById
для доступа к любому элементу по его идентификатору, тогда как при поиске по имени класса или тега вам может потребоваться только поиск в определенном контейнере, поэтому вы можете сделать x.getElementsByClassName
и т.д.