'innerHTML': объект имеет значение null или не определен

У меня есть следующее:

<div id="valueboxes" style="overflow-x:hidden;overflow-y:scroll;width:100%;height:200px">

Однако каждый раз, когда я использую следующее:

document.getElementById("valueboxes").innerHTML = html;

Я получаю эту ошибку:

'innerHTML': object is null or undefined

Я делаю что-то неправильно?

HTML - это табличная переменная, которая также добавляется javascript в цикле for с использованием +=.


person Amanada Smith    schedule 27.06.2012    source источник
comment
Где выполняется этот код? Вероятно, DOM не готов к манипуляциям.   -  person Chris Laplante    schedule 27.06.2012
comment
В коде, который вы включили в этот вопрос, нет HTML. Пожалуйста, покажите HTML внутри блока valueboxes, чтобы мы могли вам помочь.   -  person Lowkase    schedule 27.06.2012
comment
@AmandaSmith: Если у вас есть много других манипуляций с DOM, вы можете проверить jQuery. Таким образом, вы можете просто использовать $(function(){ /* Your DOM code here * /}); Это также упростит множество других вещей.   -  person Chris Laplante    schedule 27.06.2012
comment
Событие DomReady происходит до window.onload, вам лучше использовать jQuery   -  person varela    schedule 27.06.2012


Ответы (1)


Это потому, что вы выполняете свой код до полной загрузки DOM.

Это должно работать:

window.onload = function() {
  document.getElementById('valueboxes').innerHTML = html;
};

Или вы можете просто поместить свой код javascript непосредственно перед тегом </body> без необходимости использовать там onload.

person Blaster    schedule 27.06.2012
comment
Вы должны использовать DOMContentLoaded вместо onload. - person shaedrich; 18.06.2020