Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/10/2007, 15:56
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
Re: Valores de una fila

Hola ivanillo, bienvenido al foro:

A mi a veces tanto childNode me da un poco de miedo, nunca sabes si va a coger una etiqueta HTML o un nodo de texto en blanco (tabulaciones, espacios en el código...).

Lo que hago normalmente para navegar por nodos es utilizar un while y voy profundizando hasta que llego a la etiqueta que busco. Pero en este caso con coger todos los hijos TD creo que vale:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Untitled Document</title>

<
script type="text/javascript">
var 
anteriorFilaSeleccionada null;
function 
selecciona(fila){
    if( 
anteriorFilaSeleccionada )
        
anteriorFilaSeleccionada.style.backgroundColor '#FFFFFF';
    
fila.style.backgroundColor '#BBBBBB';
    
anteriorFilaSeleccionada fila;
    var 
celdasEnFila fila.getElementsByTagName("TD");
    for(var 
j=0j<celdasEnFila.lengthj++) {
        
alert(celdasEnFila[j].firstChild.nodeValue);
    }
}
</script>


</head>

<body>

<table width="500" border="1" id="tablaid">
    <tr onclick="selecciona(this)">
        <td>a</td>
        <td>b</td>
        <td>c</td>
    </tr>
    <tr onclick="selecciona(this)">
        <td>d</td>
        <td>e</td>
        <td>f</td>
    </tr>
    <tr onclick="selecciona(this)">
        <td>g</td>
        <td>h</td>
        <td>i</td>
    </tr>
</table>


</body>
</html> 
También te ahorrarás los id's y escribir argumentos utilizando el this. Te ahorras tiempo de ejecución (sobre todo en ordenadores lentos si hay muchas filas) si guardas la fila que acabas de colorear con anteriorFilaSeleccionada, así no tienes que recorrer todas las filas.



Lo he probado sólo en FF2 y en IE6, tendrás que probarlo en el resto.

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