Ошибка идентификатора элемента Internet Explorer, по крайней мере, с меткой SELECT; не нужен document.getElementById для его распознавания - PullRequest
1 голос
/ 14 июня 2011

Я рефакторинг некоторого кода (body else), и я видел это раньше, и я не помню причину, почему это происходит.В HTML есть тег SELECT, который выглядит следующим образом:

<SELECT id="model"></SELECT>

В JavaScript есть оператор, который добавляет опцию к тегу SELECT:

model.options[i]=option;

Это отлично работает в ИнтернетеПроводник (протестирован в IE 7 и 8) по некоторым причинам.Это должно вызвать ошибку, но это не так.Однако в браузере, таком как FireFox, это вызывает ошибку, как и должно быть, так как код должен быть:

document.getElementById("model").options[i]=option;

В чем причина этого, кроме того факта, что Internet Explorer предпочитает не соответствоватьСтандарты W3C?Это просто проблема с SELECT или любым количеством тегов?

Спасибо!

1 Ответ

2 голосов
/ 14 июня 2011

Если я правильно помню, Internet Explorer создает глобальные переменные, соответствующие атрибутам id элементов.

Итак, когда вы создаете элемент ...

<select id="wtv"></select>

... под капотом IE инициализирует глобальную переменную wtv как объект DOM для этого элемента. Но другие браузеры этого не делают, поэтому wtv не определено.

Некоторые цитаты:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...