如何使用jQuery隐藏表的中间?

Bri*_*ght 49 html jquery html-table

我有一个非常长的3列表.我想要

<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>
Run Code Online (Sandbox Code Playgroud)

这是我试图使用jQuery获得的结果.

Column1  Column2
Column1  Column2
...Show Full Table...
Column1  Column2
Column1  Column2
Run Code Online (Sandbox Code Playgroud)

我想使用jQuery的显示/隐藏功能来最小化表格,但仍然显示顶部和底部行的一部分.中间行应替换为"显示全表"之类的文本,单击时将展开以显示从开始到结束的完整表.

在jQuery中执行此操作的最佳方法是什么?

BTW我已经尝试在一些行中添加一个类"Table_Middle",但它并没有完全隐藏它占用的空间仍然存在,我没有文本给用户扩展表的方法充分.

[编辑]添加了工作示例HTML,灵感来自Parand发布的答案

下面的示例是一个完整的工作示例,您甚至不需要下载jquery.只需粘贴到空白HTML文件中即可.

如果关闭Javascript,它会很好地降低以仅显示完整的表格.如果Javascript打开,则它会隐藏中间表行并添加显示/隐藏链接.

<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>
Run Code Online (Sandbox Code Playgroud)

[编辑]链接我的博客文章和工作示例.

Par*_*and 56

像这样的东西可以工作:

<table>
    <tbody>
      <tr><td>Column1</td><td>Column2</td></tr>
      <tr><td>Column1</td><td>Column2</td></tr>
      <tr class="Show_Rows"><td>Start</td><td>Hiding</td></tr>
    </tbody>
    <tbody class="Table_Middle" style="display:none">
      <tr><td>Column1</td><td>Column2</td></tr>
      <tr><td>Column1</td><td>Column2</td></tr>
      <tr><td>Column1</td><td>Column2</td></tr>
    </tbody>
    <tbody>
      <tr class="Show_Rows"><td>End</td><td>Hiding</td></tr>
      <tr><td>Column1</td><td>Column2</td></tr>
      <tr><td>Column1</td><td>Column2</td></tr>
    </tbody>
</table>


$('#something').click( function() {
    $('.Table_Middle').hide();
    $('.Show_Rows').show();
});

$('.Show_Rows').click( function() { 
    $('.Show_Rows').hide();
    $('.Table_Middle').show();
});
Run Code Online (Sandbox Code Playgroud)