Возможный дубликат:
IE /Chrome: здесь присутствуют глобальные переменные элементов дерева DOM?
Я только что наткнулся на неожиданное, но полезное поведение в браузере: он создает переменную для каждого элемента, имеющего идентификатор в моем html-коде. Итак, когда у меня есть:
<div id="ohlala"> ... </div>
браузер, похоже, запускает этот код за кулисами:
var ohlala = document.getElementById("ohlala");
поэтому я могу легко изменить текст этого элемента:
ohlala.innerHTML="test"
Попробуйте в Интернете: http://jsfiddle.net/Facby/ Вопрос в том, зачем мне написать document.getElementById()
бит самостоятельно? Насколько переносим этот код? Я пробовал в Opera, FireFox и Chrome, и это работает! Могу ли я положиться на эту функцию? Всегда ли браузер создает переменные для каждого элемента с идентификатором? В этом случае я должен быть более осторожным с именами, которые используются в моем коде javascript, чтобы не конфликтовать с аналогичными идентификаторами из HTML, верно?
window
, определение элементов с идентификаторами, соответствующими этим свойствам, не заменит их в объектеwindow
, и вы окажетесь в ситуации, когда вам придется либо избегать определенных идентификаторов, либо используйтеgetElementById
только для определенных идентификаторов. - person lanzz   schedule 20.09.2012ohlaha
? вам придется угадать - person Martin Trenker   schedule 20.09.2012