Mostrar Y Ocultar Filas Con Javascript
Esta técnica permite mostrar y ocultar filas de una tabla, para poder, por ejemplo,entregar mayor información a nuestros usuarios.
A continuación se muestra una función en Javascript que muestra y oculta una fila, dependiendo del estado actual de la misma.
function cambiarDisplay(id) {
if (!document.getElementById) return false;
fila = document.getElementById(id);
if (fila.style.display != "none") {
fila.style.display = "none"; //ocultar fila
} else {
fila.style.display = ""; //mostrar fila
}
}
Si la fila está visible, entonces al llamar a la función, la fila será ocultada y viceversa. Lo que hace la función es cambiar la propiedad display del elemento. Para ocultarlo, establece su valor a none y para mostrarlo establece su valor a una cadena vacía. este punto es importante porque permite a cada navegador ocupar el valor por defecto para esa propiedad (Firefox usa "table-row", Internet Explorer y Opera usan "block").
Veamos un ejemplo de su aplicación. El siguiente código muestra una tabla con 2 filas. La primera corresponde a un título y la segunda una descripción en detalle. Al hacer clic en el título, se muestra la fila de detalle.
<table>
<tr id="row1" onClick="cambiarDisplay('row2')">
<td><strong> Televisores de LCD, Pantalla de Cristal Líquido</strong> (Stock: 90 unidades ) </td>
</tr>
<tr id="row2" onClick="cambiarDisplay('row2')" style="display:none">
<td>Los Televisores de LCD brindan la más alta calidad de imágen dentro de la gama de modelos de pantallas planas, lo que los convierte en una excelente opción para los más exquisitos. </td>
</tr>
</table>
Como se puede apreciar cada fila tiene establecido un identificador. La segunda fila está oculta por defecto a través de la propiedad style.
Para que la función trabaje correctamente el navegador debe manejar DOM. El script ha sido probado en Firefox 1.5, Internet Explorer 5.0 y superior y Opera 9. Si encuentras problemas en otros navegadores por favor hazlo saber en los comentarios.
Comentarios
Necesito algo similar, pero para ocultar un conjunto de filas de una vez (o sea, todas bajo el mismo id). Probe encerrando ese conjunto de filas entre y pero no funciona para tablas.
Para el webmaster de esta página:
Si este es un blog de diseño web deberia esperarse q los participantes ingresen etiquetas HTML (en el comentario anterior quise poner DIV y no aparecio). Si querés evitar ataques de XSS no remuevas la etiqueta entera, simplemente reemplaza por & g t; y & l t; (sin los espacios).
Gracias, sencillo y practico el ejemplo.
hola, yo también estoy interesado en un problema parecido al de Sebastián, si podés por favor publicar un tuto para una situación así =)
Muy práctico, y para guardarlo en cocckies y no volver a presionarlo?
Gracias sirvio para aclarar mis dudas :D
Hola, tengo un problema...
Cuando lo asigno en vez de un tr a un Impresora
Asi, no funciona en IE, solo en Firefox.
Gracias hace rato estaba intentando y nada, pero con tu función fue de una! Gracias...
Excelente aporte. Limpio y directo!!!
Gracias
Comentar
Los campos con asterisco * son obligatorios.

