Я не знаю, является ли это хорошо известной «вещью» или чем-то новым в какой-либо версии Firefox, она тоже обновилась, но в любом случае я не знаю, как найти этот вопрос в Google, поэтому у меня будет спросить это здесь.
У меня в DOM есть DIV, к которому я пытаюсь получить прямой доступ по id, в самой простой форме, подобной этой:
alert(btnTest.id);
Это прекрасно работает во всех браузерах, но вызывало проблемы в Firefox, которые фактически приводили к тому, что браузер находился в странном «сломанном» состоянии.
Я получил ошибку «btnTest не определен». Я не получил эту ошибку в Safari, Internet Explorer или Chrome.
Я предположил, что я не соответствовал тэгам HTML, фигурным скобкам javascript или чему-то еще не хватало. В конце концов после удаления всего я попытался удалить DOCTYPE. Внезапно в Firefox (v 3.0.10) он начал возвращать правильный идентификатор, как и ожидалось.
Что происходит !!! ?? Конечно, «строгий» режим должен позволять мне получать доступ к именованным элементам, а если нет, то почему мне позволяют все другие браузеры.
Примечание: Я могу легко обойти это с помощью $ ('# btnTest') [0] .id, что я и буду делать сейчас, пока не найду лучшего решение.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" class="blueCircles">
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(function() {
alert("ID retrieved through jQuery: " + $('#btnTest')[0].id);
alert("ID retrieved by accessing global variable: " + btnTest.id);
});
</script>
</head>
<body>
<div id="btnTest">
</div>
</body>
</html>