Tengo una tabla muy larga de 3 columnas. Me gustaría¿Cómo oculto el medio de una tabla usando jQuery?
<table>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>Start</td><td>Hiding</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>End</td><td>Hiding</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
<tr><td>Column1</td><td>Column2</td></tr>
</table>
Este es el resultado que trato de obtener con jQuery.
Column1 Column2
Column1 Column2
...Show Full Table...
Column1 Column2
Column1 Column2
me gustaría utilizar la función de mostrar/ocultar de jQuery para reducir al mínimo la tabla pero todavía mostrar parte de las filas superior e inferior. Las filas del medio deben reemplazarse con texto como "Mostrar tabla completa" y cuando se haga clic se expandirá para mostrar la tabla completa de principio a fin.
¿Cuál es la mejor manera de hacer esto en jQuery?
BTW Ya he intentado agregar una clase "Table_Middle" a algunas de las filas, pero no la oculta por completo, el espacio que ocupa todavía está allí y no tengo el texto para darle al usuario un modo para expandir la mesa por completo
[EDIT] Añadido Ejemplo de Trabajo HTML inspirado en respuesta publicados de Paraná
El ejemplo siguiente es un ejemplo de trabajo completa, usted ni siquiera necesita descargar jQuery. Simplemente pegue en un archivo HTML en blanco.
Se degrada muy bien para mostrar solo la tabla completa si Javascript está desactivado. Si Javascript está activado, oculta las filas de la tabla central y agrega los enlaces mostrar/ocultar.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Example Show/Hide Middle rows of a table using jQuery</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#HiddenRowsNotice").html("<tr><td colspan='2'> <a href='#'>>> some rows hidden <<</a></td></tr>");
$("#ShowHide").html("<tr><td colspan='2'><a href='#'>show/hide middle rows</a></td></tr>");
$("#HiddenRows").hide();
$('#ShowHide,#HiddenRowsNotice').click(function() {
$('#HiddenRows').toggle();
$('#HiddenRowsNotice').toggle();
});
});
</script>
</head>
<body>
<table>
<tbody id="ShowHide"></tbody>
<tr><th>Month Name</th><th>Month</th></tr>
<tbody>
<tr><td>Jan</td><td>1</td></tr>
</tbody>
<tbody id="HiddenRowsNotice"></tbody>
<tbody id="HiddenRows">
<tr><td>Feb</td><td>2</td></tr>
<tr><td>Mar</td><td>3</td></tr>
<tr><td>Apr</td><td>4</td></tr>
</tbody>
<tbody>
<tr><td>May</td><td>5</td></tr>
</tbody>
</table>
</body>
</html>
enlace [editar] mi blog post y trabajando ejemplo.
¿Ha probado esto creo que el método get devuelve un objeto DOM, no un jQuery? objeto, y creo solo está ocultando esa primera fila Table_Middle porque se llama hide después de get. Tampoco lo he probado, pero si estoy en lo cierto, entonces debe volver a organizarse para que funcione. – SpoonMeiser
Tienes razón. No puedo creer que me haya perdido eso. "get()" devuelve un objeto DOM. He actualizado mi muestra de código para reconocer eso. –
Puede usar .eq (0) en lugar de .get (0) para devolver jQuery en lugar de un elemento DOM. Pero esta es totalmente la mejor respuesta aquí. – SpoonMeiser