Ver Mensaje Individual
  #28 (permalink)  
Antiguo 19/12/2011, 12:41
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: como puedo cambiar la clase en todos los div con javascript

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Código:
   if (losdivs[i].getAttribute('class') == 'uno'){
    losdivs[i].style.color ='red';
Estoy seguro que el problem es : losdivs[i].getAttribute('class')...

Algo que funciona desde tiempos inmemoriales es:

losdivs[i].className...

Saludos
Cita:
Iniciado por zerokilled Ver Mensaje
si bien recuerdo, hasta la versión iexplorer7, el método getAttribute/setAttribute estaba mal implementado. particularmente, en lugar del método recibir el nombre de un atributo tal cual, parece que admitía más el nombre de una propiedad. de modo que en lugar de pasar como valor "class", tenias que pasar el equivalente en javascript: "className". de todos modos, se puede corregir simplemente prescindiendo de los métodos por el uso directo de las propiedades. de momento es lo único que veo que pudiera fallar.
Lo que me imaginaba, getAttribute, no podía ser otra cosa >.<

Cita:
Iniciado por emprear Ver Mensaje
En cuanto a

[].slice.call(document.querySelectorAll('.uno')).for Each(function(elemento){ elemento.className += ' nuevocolor'; });

los errores son los que señalé antes

Saludos
Bueno, esto estaba claro desde un principio que no iba a funcionar por debajo de IE8, y por el forEach diría que ni siquiera en este.
Sin embargo me extraña el error de que "this no es un objeto JavaScript". Según yo lo entiendo, el error se produce en el Array.prototype.slice, que es para pasar de NodeList a array. Claro, las implementaciones del DOM son vendor specific, así que podría ser que algo fallara por la manera en que está construido; sin embargo si es IE8 estoy seguro de que funciona, o al menos funcionaba.
La verdad no sé dónde está el error, pero teniendo en cuenta que es IE, vete tú a saber
__________________
" 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