Прямая ссылка на элементы HTML [дубликат]

На этот вопрос уже есть ответ здесь:

Возможный дубликат:
IE / Chrome: здесь ли глобальные переменные элементов дерева DOM?
почему window [id] === document.getElementById (id )

Я только что наткнулся на кое-что в html / javascript, что меня немного удивило. При получении ссылки на элемент html с помощью javascript я всегда ранее использовал либо jQuery, либо document.getElementById. Также кажется, что вы можете получить прямой доступ к элементу, просто используя его идентификатор. Может кто-нибудь объяснить нюансы этого? Я погуглил, но не нашел упоминания об этой способности, каждый сайт говорит о getElementById.

Следующий фрагмент страницы иллюстрирует это.



 

    
    
    

Заранее большое спасибо.

24
задан Community 23 May 2017 в 12:13
поделиться

1 ответ

Возможность выбирать элементы на странице на основе их [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, хотя, конечно, многословно, является значимым и понятным.

14
ответ дан 29 November 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: