document.getElementById('id of div that definately exists')
devuelve null.
Originalmente cargué el javascript en último lugar para asegurarme de que no tendría que preocuparme por el evento onload. También intenté usar el evento onload. Es muy espeluznante. Cualquier idea o ayuda sería muy apreciada.
También ten cuidado como ejecutas el js en la página. Por ejemplo si haces algo como esto:
(function(window, document, undefined){
var foo = document.getElementById("foo");
console.log(foo);
})(window, document, undefined);
Esto devolverá null porque estarías llamando al documento antes de que estuviera cargado.
Mejor opción..
(function(window, document, undefined){
// code that should be taken care of right away
window.onload = init;
function init(){
// the code to be called when the dom has loaded
// #document has its nodes
}
})(window, document, undefined);
Puede ser causada por:
Por favor, publique su código.
Puede haber muchas razones por las que document.getElementById
no funciona
Su ID no es válido Los tokens ID y NAME deben empezar por una letra ([A-Za-z]) y pueden ir seguidos de cualquier número de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_"), dos puntos (":") y puntos ("."). (recurso: https://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html)
has usado algún id que ya usabas como `<meta>nombre en tu cabecera (por ejemplo copyright, autor... ) parece raro pero me ha pasado: si usas IE echa un vistazo a (recurso: http://www.phpied.com/getelementbyid-description-in-ie/)
estás apuntando a un elemento dentro de un frame o iframe. En este caso si el iframe carga una página dentro del mismo dominio del padre deberías apuntar al contentdocument
antes de buscar el elemento
(recurso: https://stackoverflow.com/questions/8710100/calling-a-specific-id-inside-a-frame/8710249#8710249)
simplemente está buscando un elemento cuando el nodo no está efectivamente cargado en el DOM, o quizás es un simple error ortográfico
Dudo que hayas usado el mismo ID dos o más veces: en ese caso document.getElementById
debería devolver al menos el primer elemento