Foros del Web » Programando para Internet » Javascript »

Cambiar la clase a todos los <td>

Estas en el tema de Cambiar la clase a todos los <td> en el foro de Javascript en Foros del Web. Estoy haciendo una función javascript para seleccionar y deseleccionar hileras de una tabla, pero me he encallado en un punto. La tabla la creo así: ...
  #1 (permalink)  
Antiguo 13/05/2003, 03:40
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
Cambiar la clase a todos los <td>

Estoy haciendo una función javascript para seleccionar y deseleccionar hileras de una tabla, pero me he encallado en un punto.

La tabla la creo así:
<table>
<tr>
<td colspan="3">Cabecera</td>
</tr>
<tr id=t1>
<td id=a1 class="uno">lala</td>
<td id=b1 class="uno">lala</td>
<td id=c1 class="uno">lala</td>
</tr>
<tr id=t2>
<td id=a2 class="uno">lala</td>
<td id=b2 class="uno">lala</td>
<td id=c2 class="uno">lala</td>
</tr>
</table>

(en realidad es más larga, pero la idea es mostrar como marco los <td>).

A parte de lo que se ve, tengo puesto un onclick que llama a una función que hace esto:
Código:
if (document.all) { //IE
	linia0b = "document.all.t"+lap; linia0 = eval(linia0b);
	linia1b = "document.all.a"+lap; linia1 = eval(linia1b);
	linia2b = "document.all.b"+lap; linia2 = eval(linia2b);
	linia3b = "document.all.c"+lap; linia3 = eval(linia3b);
 }
 else { //DOM
	linia0b = "document.getElementById('t"+lap+"')"; linia0 = eval(linia0b);
	linia1b = "document.getElementById('a"+lap+"')"; linia1 = eval(linia1b);
	linia2b = "document.getElementById('b"+lap+"')"; linia2 = eval(linia2b);
	linia3b = "document.getElementById('c"+lap+"')"; linia3 = eval(linia3b);
 }
 if (linia1.className == "uno") {classe="dos";}
 else {classe="uno";}
 linia1.className=classe;
 linia2.className=classe;
 linia3.className=classe;
Ahora necesito añadir una función para desmarcarlas todas, pero no sé como hacerlo.
He intentado adaptar el código da marcar/desmarcar radio buttons, pero me parece que sólo he conseguido liarme más

Espero que algún genio del Javascript pueda ayudarme en esta empresa.

NOTA: No puedo saber, a priori, el número de hileras que se mostrarán en la página.
__________________
M a l d i t o F r i k i
  #2 (permalink)  
Antiguo 13/05/2003, 04:38
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 3 meses
Puntos: 772
hola, Cain.

Prueba esto:
Código PHP:
function desmarcar (){
    
elem=document.getElementsByTagName('td').length;
    for (
i=0;i<elem;i++)
        
document.getElementsByTagName('td').item(i).className='uno';

Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 13/05/2003, 11:40
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
Muchas gracias

Ahora lo pruebo

Perfecto!
__________________
M a l d i t o F r i k i

Última edición por Cain; 13/05/2003 a las 11:40
  #4 (permalink)  
Antiguo 13/05/2003, 11:52
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola JavierB, Cain.

Por favor avisenme si funciona...que me interesa...
  #5 (permalink)  
Antiguo 13/05/2003, 11:54
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
Sí, sí, funciona

Lo acababa de poner, pero al solaparse con el mensaje anterior no quedaba tan claro
__________________
M a l d i t o F r i k i
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 23:30.