代码之家  ›  专栏  ›  技术社区  ›  Kieran Senior

隐藏TR-包含边框

  •  3
  • Kieran Senior  · 技术社区  · 16 年前

    只是按照

    $("tr.myclass").hide();
    

    将隐藏相关行。但是,如果我有一个与包含在tr中的td的边界,那么在tr被隐藏之后它们仍然显示出来。因此,原始表在td元素的底部有一个1px的边框。隐藏行集的位置会导致两个像素的边框代替它们的位置。

    我对这个有点迷茫,因为在互联网上似乎没有人遇到过它,至少在我的搜索标准中没有。

    编辑

    <col /> <colgroup></colgroup> ,你会发现它是可复制的。我的同事告诉我要去掉col和colgroup,嘿,presto,它很好用。这是在IE8中(我不是IE用户,但这是只用于IE的项目)。很奇怪。

    3 回复  |  直到 16 年前
        1
  •  3
  •   Guffa    16 年前

    边框不属于单元格,而是属于表格,显示在单元格之间。隐藏行将隐藏单元格,但不会删除它们,因此单元格之间的边界仍然存在。

    表不打算这样使用,如果隐藏表的某些部分,它的行为将异常或意外。隐藏元素时,表结构不会更改,因此表不会显示为隐藏元素不存在。如果要从表中删除表行,则必须实际从表中删除tr元素。

        2
  •  2
  •   James Kolpack    16 年前

    我尝试用下面的代码复制这个:

    <html>
    <style>
    td { border: 1px solid black; }
    </style>
    <body>
    <table>
        <tr id="row1"><td>Row 1</td></tr>
        <tr id="row2"><td>Row 2</td></tr>
        <tr id="row3"><td>Row 3</td></tr>
    </table>
    <p>Hide row 2</p>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script>
    $(function(){
        $('p').click(function(){$('#row2').hide();});
    });
    </script>
    </body>
    </html>
    

    边界与td元素内容一起隐藏。

        3
  •  0
  •   John Smith    13 年前