В каком стандарте указано, что элементы с идентификатором также получают глобальную переменную?

Я заметил это очень давно, но я так и не нашел никакой информации о том, почему это поддерживается браузерами.

В любом крупном браузере можно ссылаться на элементы на странице, используя их идентификатор в качестве глобальной переменной. Эта скрипка показывает пример того, как это работает. Вы также можете попробовать это сами (на этой странице), просто открыв консоль и вставив footer в нем (который вернет <div id="footer"> на этой странице), или если вы хотите попробовать его в браузере без консоли, просто запустите javascript:alert(footer) из вашего URL-бара, который должен предупредить "[объект HTMLDivElement]" или что-то подобное.

Я протестировал это в Chrome, Firefox, Opera и даже Internet Explorer, и в каждом из этих браузеров это работает. После поиска каких-либо стандартов об этом я ничего не смог найти.

Мой вопрос: почему это работает в каждом браузере, и является ли это частью каких-либо стандартов? Или это просто основной JavaScript?

2 ответа

Решение

Это связано с объектной моделью документа (DOM), которая определяет логическую структуру документов и способ доступа к документу и манипулирования им. это не лучшая практика, и лучше использовать document.getElementById(); чтобы избежать именования коллизий и т. д.

Вот пример ответа в ответ на этот вопрос ранее.

Как отмечено в ссылке, на которую ссылается мой комментарий, стандарта нет. Скорее, это поведение, которое реализовал Internet Explorer и другие браузеры скопированы для совместимости

Другие вопросы по тегам