На этот вопрос уже есть ответ здесь:
Возможный дубликат:
IE / Chrome: здесь ли глобальные переменные элементов дерева DOM?
почему window [id] === document.getElementById (id )
Я только что наткнулся на кое-что в html / javascript, что меня немного удивило. При получении ссылки на элемент html с помощью javascript я всегда ранее использовал либо jQuery, либо document.getElementById. Также кажется, что вы можете получить прямой доступ к элементу, просто используя его идентификатор. Может кто-нибудь объяснить нюансы этого? Я погуглил, но не нашел упоминания об этой способности, каждый сайт говорит о getElementById.
Следующий фрагмент страницы иллюстрирует это.
Заранее большое спасибо.
Возможность выбирать элементы на странице на основе их [id]
- это «особенность» раннего JavaScript (DOM lvl 0 или 1 метинкс, кажется, не может найти источник).
К сожалению, это темпераментная особенность. Что бы произошло, если бы вы имели:
<div id="window"></div>
или
<div id="document"></div>
Еще лучше, что здесь происходит?
<div id="foo"></div>
<div id="bar"></div>
<script>var foo = document.getElementById('bar');</script>
Так что нюансы для вызова элемента основаны на это [id]
просто так:
Это не соответствует и не гарантируется получение поддержки в будущем.
Лично я хотел бы, чтобы эта «особенность» пошла по пути document.all
. Это только вызывает больше проблем, чем решает, и document.getElementById
, хотя, конечно, многословно, является значимым и понятным.