Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] elementos por clase

Estas en el tema de elementos por clase en el foro de Javascript en Foros del Web. hola a tod@s cuando se quiere cambiar un valor de estilo de, por ejemplo, un div de id 'nombreid' se usa Código: var el = ...
  #1 (permalink)  
Antiguo 18/02/2013, 03:21
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 16 años, 9 meses
Puntos: 0
elementos por clase

hola a tod@s

cuando se quiere cambiar un valor de estilo de, por ejemplo, un div de id 'nombreid' se usa
Código:
var el = document.getElementById('nombreid');
el.style.background = "#ff0000";
pero si seleccionamos el elemento por clase, con la funcion getelementsbyclass(), ¿sabéis como se puede cambiar el estilo? con el codigo que sigue no lo consigo. milchisimas gracias.
Código:
<script>
function getElementsByClass(searchClass,node,tag) {
   var classElements = new Array();
   if ( node == null )
      node = document;
   if ( tag == null )
      tag = '*';
   var els = node.getElementsByTagName(tag);
   var elsLen = els.length;
   var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
   for (i = 0, j = 0; i < elsLen; i++) {
      if ( pattern.test(els[i].className) ) {
         classElements[j] = els[i];
         j++;
      }
   }
   return classElements;
}

var el = getElementsByClass('cls');
el[0].style.background = "#ff0000";


</script>

<div id="id1" class="cls" style="background: #000000;">hola</div>
  #2 (permalink)  
Antiguo 18/02/2013, 08:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: elementos por clase

Tu función no está mal, pero si no la invocás tras la carga del DOM no te va a funcionar, tenés que hacer

Código Javascript:
Ver original
  1. window.onload = function(){
  2. var el = getElementsByClass('cls');
  3. el[0].style.background = "red";
  4. }

De todas formas, esa función que creaste te serviría para dar compatibilidad a versiones anteriores a IE9.
En IE9 y el resto de los navegadores disponés de
getElementsByClassName()

Hace poco contesté este post ,quizás la información te pueda servir

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 18/02/2013, 09:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: elementos por clase

estupendo! muchas gracias por la aclaración

Etiquetas: clase, elementos, funcion
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 21:14.