Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] error "Cannot read property 'getElementsByTagName' of null"

Estas en el tema de error "Cannot read property 'getElementsByTagName' of null" en el foro de Javascript en Foros del Web. Hola a todos, a lo largo de las últimas horas he creado un código JavaScript que da lugar al siguiente error: " Cannot read property ...
  #1 (permalink)  
Antiguo 25/04/2016, 17:37
 
Fecha de Ingreso: abril-2016
Mensajes: 8
Antigüedad: 8 años
Puntos: 0
Exclamación error "Cannot read property 'getElementsByTagName' of null"

Hola a todos,
a lo largo de las últimas horas he creado un código JavaScript que da lugar al siguiente error: "Cannot read property 'getElementsByTagName' of null".
Por más que he mirado no hallo error en él y al tratar de buscar documentación sobre dicho error todo apuntaba a que era causado por el hecho de que estaba tratando "llamar" o capturar elementos con GETELELEMENTSBYTAGNAME antes de qu dichos elementos fueran creados por otra función. Pero no entiendo que sea así; como podréis ver, el evento que dispara la función que genera el error es un "ONLOAD", que, si no me equivoco, debería hacer que esas acciones se llevaran a cabo una vez la página ya está cargada (y ,por tanto, todos sus elementos ya creados).

Aún así, he tratado de desplazar el script al final del documento y no ha servido de nada. Con todo, doy por hecho que estoy cometiendo algún otro error que no soy capaz de ver.

Adjunto a continuación el código:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
window.onload = function () {
elementHores=document.getElementById('hours');
elementHoresNoms=elementHores.getElementsByTagName ('td');
nomsHores=new Array();
for(var j=0;j<elementHoresNoms.length;j++){nomsHores.push( elementHoresNoms[j].innerHTML);}
var diesGrups=3;
casillaDatos=new Array();
dispo=new Array();
elemdia=new Array();
elemdiach=new Array();
checkBoxElements=new Array();
deshabilitats=new Array();
dispo=new Array();
for(var i=1;i<diesGrups+1;i++){
casillaDatos[i]=document.getElementById('\'datos'+i+'\'');
elemdia[i]=new Array();
elemdiach[i]=new Array();
elemdia[i]=document.getElementById('\'dia'+i+'\'');

elemdiach[i]=elemdia[i].getElementsByTagName('input');
checkBoxElements[i]=new Array();
deshabilitats[i]=new Array();

for(var d=0;d<elemdiach[i].length;d++){
if(elemdiach[i][d].type=='radio'){elemdiach[i][d].addEventListener("click",actualitza);}
else{elemdiach[i][d].addEventListener("change",actualitza);}
if(elemdiach[i][d].type=='checkbox'){checkBoxElements[i].push(elemdiach[i][d]);}
if(elemdiach[i][d].disabled==true){deshabilitats[i].push(elemdiach[i][d]);}
}
casillaDatos[i].innerHTML='<div> Disponibilidad completa</div>';
/*falta dispo[i].value*/
}

}

Concretamente, la línea que genera el error es:

elemdiach[i]=elemdia[i].getElementsByTagName('input');


Y puedo asegurar que los elementos con id 'dia1','dia2','dia3' y 'datos1','datos2','datos3' se han creado correctamente...

Muchas gracias de antemano por vuestra atención.

Un saludo
  #2 (permalink)  
Antiguo 27/04/2016, 02:16
 
Fecha de Ingreso: abril-2016
Mensajes: 8
Antigüedad: 8 años
Puntos: 0
Respuesta: error "Cannot read property 'getElementsByTagName' of null"

hola,

a alguien se le ocurre algo?

Muchas gracias.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:01.