Ver Mensaje Individual
  #22 (permalink)  
Antiguo 06/09/2005, 16:50
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Para todos:
Yo lo veo tan facil como una funcion de una sola linea, con nuestro amigo DOM que cada dia me gusta mas :
Código PHP:
<html
<
head
<
script
function 
marcar(check) { 
    
check.parentNode.parentNode.style.backgroundColor=check.checked?"#FF0000":"#FFFFFF";

</script> 
</head> 

<body> 
<table> 
  <tr id="fila1"> 
    <td>Celda 1</td> 
    <td>Celda 2</td> 
    <td> 
    <input type="checkbox" onClick="marcar(this)"> 
    </td> 
  </tr> 
  <tr id="fila2"> 
    <td>Celda 3</td> 
    <td>Celda 4</td> 
    <td> 
    <input type="checkbox" onClick="marcar(this)"> 
    </td> 
  </tr> 
  <tr id="fila3"> 
    <td>Celda 3</td> 
    <td>Celda 4</td> 
    <td> 
    <input type="checkbox" onClick="marcar(this)"> 
    </td> 
  </tr> 
</table> 
</body> 

</html> 

Para lithiumfire:
Antes de nada me gustaria comentarte un par de cosas de tu (x)HTML:
1) Es la primera vez que veo <thead>, gracias por mostrarmela
2) <th> es una celda en negrita y centrada, pero una celda, no es un grupo de celdas.
3) ¿Un elemento <td> sin contenido, cerrado? m?
4) No puedes poner atributos id iguales a distintos elementos, habría problemas.
5) Hay enlaces sin abrir (</a>) en la primera celda <td>

Con DOM tambien. Se podria hacer esto para ahorrarte ensuciar el HTML:
Código PHP:
<html
<
head
</
head

<
body

<
table id="tablaEspecial" border="1">
    <
thead>
        <
tr>
            <
th>Option One</th>
            <
th>Option Two</th>
            <
th>Option Three</th>
            <
th>Option Four</th>
        </
tr>
    </
thead>
    <
tbody>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
    </
tbody>
</
table>

<
table id="otraTabla" border="1">
    <
thead>
        <
tr>
            <
th>Option One</th>
            <
th>Option Two</th>
            <
th>Option Three</th>
            <
th>Option Four</th>
        </
tr>
    </
thead>
    <
tbody>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
        <
tr>
            <
td>05</td>
            <
td>ABC</td>
            <
td>12.00</td>
            <
td>12/12/2004</td>
        </
tr>
    </
tbody>
</
table>

<
script>
//la tabla especial
var tE=document.getElementById("tablaEspecial");
//las celdas de la tabla especial
var tE_td=tE.getElementsByTagName("TD");
//por cada celda en tE
for(var a=0;a<tE_td.length;a++) {
    
tE_td[a].onmouseover=function() {
        
//las celdas de la fila de esta celda
        
var tE_td_tr_tds=this.parentNode.childNodes;
        
//coloreamos cada celda de la fila
        
for(var b=0;b<tE_td_tr_tds.length;b++)
            
tE_td_tr_tds[b].style.backgroundColor="#0000FF";
        
//coloreamos la propia celda
        
this.style.backgroundColor="#00FF00";
    }
    
tE_td[a].onmouseout=function() {
        
//las celdas de la fila de esta celda
        
var tE_td_tr_tds=this.parentNode.childNodes;
        
//descoloreamos cada celda de la fila
        
for(var b=0;b<tE_td_tr_tds.length;b++)
            
tE_td_tr_tds[b].style.backgroundColor="#FFFFFF";
        
//descoloreamos la propia celda
        
this.style.backgroundColor="#FFFFFF";
    }
}

</script>

</body> 

</html> 
Esta hecho de manera que es aplicable a la tabla que quieras, pero si las quieres para todas las de tu documento no es dificil, basta sustituir esto:
Código:
//la tabla especial
var tE=document.getElementById("tablaEspecial");
//las celdas de la tabla especial
var tE_td=tE.getElementsByTagName("TD");
Con
Código:
var tE_td=document.getElementsByTagName("TD");
Aunque lo mas sensato seria cambiar el nombre de la variable, por si no te quieres andar con complicaciones.



Y un saludo a todos!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.