Foros del Web » Programando para Internet » Javascript »

elementos con el mismo id

Estas en el tema de elementos con el mismo id en el foro de Javascript en Foros del Web. como accedo a los elementos que tiene el mismo id, por ejemplo Imagen 1<IMG src='imagen1.gif' id="Cajas"> Imagen 2<<IMG src='imagen2'.gif id="Cajas"> Imagen 3<<IMG src='imagen3'.gif id="Cajas">...
  #1 (permalink)  
Antiguo 13/05/2009, 16:28
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
elementos con el mismo id

como accedo a los elementos que tiene el mismo id, por ejemplo

Imagen 1<IMG src='imagen1.gif' id="Cajas">
Imagen 2<<IMG src='imagen2'.gif id="Cajas">
Imagen 3<<IMG src='imagen3'.gif id="Cajas">
  #2 (permalink)  
Antiguo 13/05/2009, 16:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: elementos con el mismo id

Hola:

Los id's deben ser únicos... si quieres complicarte con elementos con el mismo nombre puedes usar el atributo name...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/05/2009, 16:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: elementos con el mismo id

gracias pero me podrias dar un ejemplo cortito
  #4 (permalink)  
Antiguo 13/05/2009, 16:54
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: elementos con el mismo id

Hola,
Aqui tienes un ejemplo:
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=iso-8859-1" />
  5. <title>Documento sin t&iacute;tulo</title>
  6. <script type="text/javascript">
  7. <!--
  8. onload=function(){
  9.     var cajas=document.getElementsByName("Cajas");
  10.     for(var i=0; i<cajas.length; i++){
  11.         alert("Caja "+(i+1)+", imagen: "+cajas[i].src);
  12.     }
  13. }
  14. -->
  15. </script>
  16. </head>
  17.  
  18. <body>
  19. Imagen 1<IMG src='imagen1.gif' name="Cajas">
  20. Imagen 2<IMG src='imagen2.gif' name="Cajas">
  21. Imagen 3<IMG src='imagen3.gif' name="Cajas">
  22. </body>
  23. </html>
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 13/05/2009, 17:05
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: elementos con el mismo id

Gracias,siempre lo he dicho este foro es el mejor de habla hispana
  #6 (permalink)  
Antiguo 13/05/2009, 17:07
 
Fecha de Ingreso: mayo-2009
Ubicación: DF
Mensajes: 39
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: elementos con el mismo id

Segun la W3C no se pueden (no se debe) definir objetos con el mismo ID.

Lo mas recomendable y sano es usar el atributo class
  #7 (permalink)  
Antiguo 13/05/2009, 17:10
 
Fecha de Ingreso: febrero-2009
Mensajes: 225
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: elementos con el mismo id

Cita:
Iniciado por ben_rivero Ver Mensaje
Segun la W3C no se pueden (no se debe) definir objetos con el mismo ID.

Lo mas recomendable y sano es usar el atributo class
y cuando tengo un metodo en java que utiliza getElementById, y se precisa que mas de un elemento sea afectado por este metodo. Esta bien utilizar name? existe un getElementByName? o cual seria la mejor forma?
por que probe ("invente") getElementByClass pero no parece existir, y no encontro forma de lograr lo que deseo sin duplicar metodos. gracias
  #8 (permalink)  
Antiguo 13/05/2009, 17:16
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: elementos con el mismo id

El getElementsByName si existe, pero el getElementByClass no. Para eso hay que crearlo, no es tan dificil.
__________________
Half Music - www.halfmusic.com
  #9 (permalink)  
Antiguo 13/05/2009, 17:20
 
Fecha de Ingreso: mayo-2009
Ubicación: DF
Mensajes: 39
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: elementos con el mismo id

Asi se hace, solo que sería usando el framework mootools (es el que yo uso)

digamos que tienes:

Código HTML:
<a href="#" class="links">Link 1</a>
<a href="#" class="links">Link 2</a>
<a href="#" class="links">Link 3</a> 
Ahora bien puedes hacer esto... recorrer con each cada uno de los objetos con clase links y hacer lo que quieras con el.

Código PHP:
$$('.links').each( function(el){
      
//cada objeto link cae temporalmente en cada ciclo en la variable "el". en este caso cambio el color de fuente.
      
el.setStyle('color''#ff3300');            
}); 
Se puede hacer con cualquier libreria, a mi me encanta mootools
  #10 (permalink)  
Antiguo 13/05/2009, 17:41
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: elementos con el mismo id

Haci se lo pude hacer sin mootools:
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=iso-8859-1" />
  5. <title>getElementByClass</title>
  6. <script type="text/javascript">
  7. <!--
  8. function getElementByClass(classNameBusca){
  9.     var classTemp=[];
  10.     var tags=document.getElementsByTagName('*');
  11.     for (var i=0; i<tags.length; i++){
  12.     if (tags[i].className==classNameBusca)
  13.         classTemp[classTemp.length==0?0:classTemp.length]=tags[i];
  14.     }
  15.     return classTemp;
  16. }
  17. onload=function(){
  18.     var busca=getElementByClass('dived');
  19.     for(var i=0; i<busca.length;i++){
  20.         busca[i].onclick=function(){this.style.color='#FFFF00';};
  21.     }
  22.     alert('Hay '+busca.length+' de dived en esta pagina.');
  23. };
  24. -->
  25. </script>
  26.  
  27. </head>
  28.  
  29. <body>
  30. <div class="dived">Texto 1</div>
  31. <div class="dived">Texto 2</div>
  32. <div class="dived">Texto 3</div>
  33. <div>Texto 4 (no dived)</div>
  34. </body>
  35. </html>
Pero siempre me gusto usar framework ( mi favorito jQuery).
__________________
Half Music - www.halfmusic.com
  #11 (permalink)  
Antiguo 15/05/2009, 10:50
 
Fecha de Ingreso: febrero-2009
Mensajes: 225
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: elementos con el mismo id

Cita:
Iniciado por pato12 Ver Mensaje
El getElementsByName si existe, pero el getElementByClass no. Para eso hay que crearlo, no es tan dificil.
y funciona en todos los navegadores?
gracias por la respuesta
  #12 (permalink)  
Antiguo 15/05/2009, 11:49
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: elementos con el mismo id

Si, además ni hay que crearlo, solo pones en google getElementsByClassName y te da una lista enorme de funciones que ya han sido creadas. La mayoría son iguales, o por lo menos la idea detrás de ellos es igual.
__________________
twitter: @imbuzu
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:09.