not ejemplo javascript getelementbyid

javascript - ejemplo - getElementById devuelve nulo?



getelementsbytagname (3)

document.getElementById(''id of div that definately exists'') devuelve null.

Originalmente cargué el javascript pasado 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.


Puede haber muchas razones por las cuales document.getElementById no funciona

  • Usted tiene una identificación inválida

    Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos ("."). (resource: ¿Cuáles son los valores válidos para el atributo id en HTML? )

  • Usaste una identificación que ya usabas como <meta> name en tu encabezado (por ejemplo, copyright, autor ...) Parece extraño, pero me pasó a mí: si estás utilizando IE, échale un vistazo a (resource: http://www.phpied.com/getelementbyid-description-in-ie/ )

  • Estás apuntando a un elemento dentro de un marco o un iframe. En este caso, si el iframe carga una página dentro del mismo dominio del principal, debe apuntar al contentdocument antes de buscar el elemento (resource: Llamar a un ID específico dentro de un marco )

  • simplemente está buscando un elemento cuando el nodo no está efectivamente cargado en el DOM, o tal vez es un error de ortografía simple

Dudo que haya usado el mismo ID dos o más veces: en ese caso, document.getElementById debería devolver al menos el primer elemento


Puede ser causado por:

  1. Sintaxis HTML no válida (alguna etiqueta no está cerrada o error similar)
  2. ID duplicados: hay dos elementos HTML DOM con la misma ID
  3. ¿Quizás el elemento que intentas obtener por ID se crea dinámicamente (cargado por ajax o creado por script)?

Por favor, publique su código.


También tenga cuidado de cómo ejecuta 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á nulo porque estarías llamando al documento antes de que se cargara.

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);