Foros del Web » Programando para Internet » Javascript »

undefined

Estas en el tema de undefined en el foro de Javascript en Foros del Web. hola foreros porque me dice undefined Código: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin ...
  #1 (permalink)  
Antiguo 16/10/2010, 11:17
(Desactivado)
 
Fecha de Ingreso: enero-2010
Mensajes: 83
Antigüedad: 14 años, 9 meses
Puntos: 1
undefined

hola foreros

porque me dice undefined
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Documento sin t&iacute;tulo</title> 
</head> 
<body>

<p>caca</p>

<p name="Morbi">Morbi</p>

<script type="text/javascript">
<!--
// creamos una variable
var parrafos = document.getElementsByName("Morbi");
document.write(parrafos.innerHTML);

//-->
</script> 
</body> 
</html>
  #2 (permalink)  
Antiguo 16/10/2010, 12:05
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: undefined

Si te fijas, el método es getElementsByName(), no getElementByName. Esto significa que cada vez que uses este método (u otros como getElementsByTagName() o getElementsByClassName()) se creará una colección de elementos, por lo que tendrás que usar el índice del elemento que quieras usar. Para que lo veas mejor, he aquí un ejemplo:
Código HTML:
Ver original
  1. <input type='text' name='cosa[]' />
  2. <input type='text' name='cosa[]' />
  3. <input type='text' name='cosa[]' />
  4. <!-- etc... -->
Código Javascript:
Ver original
  1. var inputs=document.getElementsByName('cosa[]');
  2. for(i in inputs){
  3.  alert(inputs[i].name);
  4. }
Evidentemente este ejemplo no tiene mucha utilidad, pero es para que veas que hay que acceder a los elementos con un índice.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 16/10/2010, 12:08
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: undefined

El doctype que estás usando (http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd) te está indicando que el elemento p no admite el atributo name.
Loseñalo porque aunque esto te funcione:
Código:
document.getElementsByName("Morbi").item(0);
Igualmente no es correcto.
  #4 (permalink)  
Antiguo 16/10/2010, 12:34
(Desactivado)
 
Fecha de Ingreso: enero-2010
Mensajes: 83
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: undefined

a entonces solo boy a usar elementos que admiten el name
pero....
mo me sale @_@
no pueden poner el codigo completo?
  #5 (permalink)  
Antiguo 16/10/2010, 12:39
(Desactivado)
 
Fecha de Ingreso: enero-2010
Mensajes: 83
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: undefined

Intente sacarlo asi pero no sale, logro funcionar esa funcion de getElementsByName

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>

<form method="post" action="" >
<input type="text" name="caca"/>
<input type="text" name="caca"/>
<input type="button" onclick="morbi ()" value="yo"/>
</form>
<script type="text/javascript">
<!--
function morbi()
{
var caca=document.getElementsByName("caca[0]");
document.write(caca.innerHTML);
}
//-->
</script>
</body>
</html>
  #6 (permalink)  
Antiguo 16/10/2010, 13:00
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: undefined

no puedes hacerlo de esa manera. la colección se trata de una matriz, y para acceder a los elementos de una matriz, has de hacerlo por su indice. dicho con otras palabras, primero creas la colección y después accedes a sus elementos
  #7 (permalink)  
Antiguo 16/10/2010, 14:02
(Desactivado)
 
Fecha de Ingreso: enero-2010
Mensajes: 83
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: undefined

gracias a todos problema resuelto
Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Documento sin t&iacute;tulo</title>
  6. </head>
  7. <body>
  8.  
  9. <form method="post" action="" >
  10. <input type="text" name="caca"/>
  11. <input type="text" name="caca"/>
  12. <input type="button" onclick="morbi ()" value="yo"/>
  13. </form>
  14. <script type="text/javascript">
  15. <!--
  16. function morbi()  
  17. {  
  18. var caca=document.getElementsByName("caca");  
  19. alert(caca[0].value);  
  20. }  
  21. //-->
  22. </script>
  23. </body>
  24. </html>

Etiquetas: undefined
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 18:23.