Почему document.getelementbyId не работает в Firefox?

Я не могу понять, почему document.getElementById не работает в Firefox:

document.getElementById("main").style.width = "100";

Когда я проверяю Firebug, он говорит:

TypeError: document.getElementById("main") имеет значение null

Кто-нибудь знает, почему это происходит?

РЕДАКТИРОВАТЬ: К сожалению, элемент «тело» был плохим примером. Я изменил его на другой элемент с идентификатором «main».


person chris    schedule 24.09.2009    source источник
comment
извините, плохой пример; я изменил вопрос на фактический элемент с идентификатором.   -  person chris    schedule 24.09.2009
comment
Вы где-то переопределили document.getElementById или загрузили JS, который это делает? это работает для меня в firebug.   -  person seth    schedule 24.09.2009
comment
Кстати: не забудьте px при указании ширины, например. 100 пикселей   -  person M4N    schedule 24.09.2009
comment
Что сказал steve_c. Дайте нам полный провальный случай, который мы сможем воспроизвести. getElementById() отлично работает для всех нас.   -  person Chuck    schedule 24.09.2009
comment
Оказывается, это не сработало, потому что я не включил px, как сказал Мартин.   -  person chris    schedule 24.09.2009
comment
Спасибо всем за вашу помощь. На самом деле, вы, ребята, помогли мне решить две проблемы: кузовную и основную.   -  person chris    schedule 24.09.2009


Ответы (4)


Вы установили идентификатор элемента <body> в «тело»:

<body id="body" ...>

Обновлять:

Проверьте, подходит ли вам следующий пример: http://jsbin.com/uyeca/edit Нажмите кнопку Вкладка «Вывод», чтобы увидеть результат (который должен быть DIV шириной 600 пикселей).

person M4N    schedule 24.09.2009
comment
спасибо, я только что заметил, что body был плохим примером, и установил для него другой идентификатор. - person chris; 24.09.2009

поставь свой скрипт перед

</body>

Или, если вы используете свой скрипт в <head>, вы можете изменить код:

$(document).ready(function() {
    //enter code here.
});
person Tusko Trush    schedule 18.12.2012

https://developer.mozilla.org/En/DOM/Document.getElementById

Простое создание элемента и назначение идентификатора не сделает элемент доступным для getElementById. Вместо этого нужно сначала вставить элемент в дерево документа с помощью insertBefore или аналогичного метода, возможно, в скрытый div.

var element = document.createElement("div");
element.id = 'testqq';
var el = document.getElementById('testqq'); //

el будет нулевым!

person uncleO    schedule 24.09.2009

У меня была такая же проблема... Я пытался использовать "getElementById" без основной структуры HTML-страницы - тег отсутствовал.

После добавления на мою страницу все заработало нормально... Я работал над сценарием, который должен был быть вставлен на другие сайты - что-то вроде виджета.

person RRG    schedule 04.08.2010