javascript - ejemplo - getElementById() devuelve null aunque el elemento existe
getelementbyid properties (5)
Esto se debe a que la secuencia de comandos se ejecuta antes de que la página haya procesado.
Para prueba añada este atributo a la etiqueta de cuerpo:
<body onload="alert(document.getElementById(''abc''));" >
Esta pregunta ya tiene una respuesta aquí:
Estoy intentando obtener el elemento con getElementById (), pero devuelve null aunque el elemento exista. ¿Qué estoy haciendo mal?
<html>
<head>
<title>blah</title>
<script type="text/javascript">
alert(document.getElementById("abc"));
</script>
</head>
<body>
<div id="abc">
</div>
</body>
Pero no existe, no en ese punto en el HTML. Los documentos HTML se analizan de arriba a abajo, al igual que los programas que se ejecutan. La mejor solución es simplemente colocar la etiqueta de script en la parte inferior de la página. También podría adjuntar su JavaScript al evento de carga.
Si no desea adjuntarlo al evento de carga, simplemente coloque su script en la parte inferior del cuerpo, por lo que se ejecutará al final.
<html>
<head>
<title>blah</title>
</head>
<body>
<div id="abc">
</div>
<script type="text/javascript">
alert(document.getElementById("abc"));
</script>
</body>
</html>
Su secuencia de comandos se ejecuta antes de que se haya cargado el DOM. Para solucionar esto, puede colocar su código en la función window.onload
así:
window.onload = function() {
alert(document.getElementById("abc"));
};
Una alternativa es colocar su script
justo antes de la etiqueta de cierre </body>
.
Tienes que poner esto en un evento de load
document
. El DOM no ha llegado a abc
en el momento en que se ejecuta el script.