Foros del Web » Programando para Internet » Javascript »

document.getElementById

Estas en el tema de document.getElementById en el foro de Javascript en Foros del Web. Buenos días, tengo el siguiente código y no me funciona, alguién puede decirme el por qué: <script type="text/javascript" language="javascript"> // cargar_pagina(); // function cargar_pagina(){ alert("Aquí ...
  #1 (permalink)  
Antiguo 14/05/2010, 01:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta document.getElementById

Buenos días,
tengo el siguiente código y no me funciona, alguién puede decirme el por qué:

<script type="text/javascript" language="javascript">
//
cargar_pagina();
//
function cargar_pagina(){
alert("Aquí llega");
alert("Esto no se muestra:"+document.getElementById('id_algo').value );
}
//
function clic(){
alert("Esto funciona:"+document.getElementById('id_algo').valu e);
}
//
</script>


<input type="text" id="id_algo">
<input type="button" onclick="clic();">



Es curioso porque cuando me carga la página no me muestra el valor del input, pero cuando hago clic en el botón Sí.

Alguién puede decirme a que es debido.

Gracias
  #2 (permalink)  
Antiguo 14/05/2010, 01:07
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: document.getElementById

Estoy viendo que podría ser a causa del orden, es decir, si primero pongo el código de <inputs> y luego <script> funciona.
  #3 (permalink)  
Antiguo 14/05/2010, 01:14
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: document.getElementById

invierte el orden, primero carga los inputs y luego el script. tal como lo tienes no te puede funcionar porque los navegadores analizan el contenido de forma lineal, es decir, segun van apareciendo en el codigo fuente. al momento de interpretar el codigo javascript, no existe los inputs. de modo que cuando se intenta obtener el elemento por getElementById, devuelve null porque ese elemento aun no existe.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 14/05/2010, 23:11
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 7 meses
Puntos: 12
Respuesta: document.getElementById

O sino dejalo así, o incluso pon el código Javascript dentro el HEAD... Algo así:

Código HTML:
Ver original
  1.     <head>
  2.         <title>Javascript Test</title>
  3.         <script type="text/javascript">
  4.             //<![CDATA[
  5.             function load_page() {
  6.                 alert('Aquí llega');
  7.                 alert('Ahora si se muestra: ' + document.getElementById('some_input').value);
  8.             }
  9.  
  10.             function clic() {
  11.                 alert('Esto funciona: ' + document.getElementById('some_input').value);
  12.             }
  13.            
  14.             function whenLoaded(callback) {
  15.                 if (!document.body)
  16.                     setTimeout(function() {
  17.                         whenLoaded(callback);
  18.                     }, 16);
  19.                 else callback();
  20.             }
  21.            
  22.             whenLoaded(function() {
  23.                 load_page();
  24.             });
  25.             //]]>
  26.         </script>
  27.     </head>
  28.     <body>
  29.         <input type="text" id="some_input" value="My value" />
  30.         <input type="button" onclick="clic()" value="Clic!" />
  31.     </body>
  32. </html>

¡Saludos!

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 08:50.