В каком стандарте указано, что элементы с идентификатором также получают глобальную переменную?
Я заметил это очень давно, но я так и не нашел никакой информации о том, почему это поддерживается браузерами.
В любом крупном браузере можно ссылаться на элементы на странице, используя их идентификатор в качестве глобальной переменной. Эта скрипка показывает пример того, как это работает. Вы также можете попробовать это сами (на этой странице), просто открыв консоль и вставив footer
в нем (который вернет <div id="footer">
на этой странице), или если вы хотите попробовать его в браузере без консоли, просто запустите javascript:alert(footer)
из вашего URL-бара, который должен предупредить "[объект HTMLDivElement]" или что-то подобное.
Я протестировал это в Chrome, Firefox, Opera и даже Internet Explorer, и в каждом из этих браузеров это работает. После поиска каких-либо стандартов об этом я ничего не смог найти.
Мой вопрос: почему это работает в каждом браузере, и является ли это частью каких-либо стандартов? Или это просто основной JavaScript?
2 ответа
Это связано с объектной моделью документа (DOM), которая определяет логическую структуру документов и способ доступа к документу и манипулирования им. это не лучшая практика, и лучше использовать document.getElementById(); чтобы избежать именования коллизий и т. д.
Вот пример ответа в ответ на этот вопрос ранее.
Как отмечено в ссылке, на которую ссылается мой комментарий, стандарта нет. Скорее, это поведение, которое реализовал Internet Explorer и другие браузеры скопированы для совместимости