2012-01-14 38 views
6

¿Por qué este código no funciona? Estoy usando FF.getElementById y null - ¿por qué?

<head> 
<script type="text/javascript"> 

document.getElementById("someID").onclick = function(){ 
    alert("Yahooo"); 
} 
</script> 
</head> 

<body> 
<a href="#" id="someID">someID</a> 
</body> 

</html> 

obtengo el error de javascript getElementById es igual a nulo.

Respuesta

10

El DOM necesario no se carga cuando se ejecuta el script. Cualquiera de moverlo hacia abajo (debajo de la href) o definir de esta manera:

window.onload = function() { 
    document.getElementById("someID").onclick = function(){ 
     alert("Yahooo"); 
    } 
} 

window.onload se llamará cuando la página está completamente cargado.

2

Porque el elemento aún no existe cuando se ejecuta la secuencia de comandos: el documento aún no se ha procesado. Ejecute el script en un bloque de script después del HTML relacionado, o use un controlador de eventos "document on ready", preferiblemente a partir de algo como el evento .ready() de jQuery, o el window.onload nativo.

+0

OMG! Facepalm. Gracias :) – lunar

Cuestiones relacionadas