【问题标题】:jQuery / CSS: proper way to hide a columnjQuery / CSS:隐藏列的正确方法
【发布时间】:2013-12-08 06:50:36
【问题描述】:

我对 jQuery 和 CSS 很陌生,希望有人可以帮助我解决以下问题:

我有一个标准的 HTML 表格,其中有一个 colgroup、thead、tbody 和几个 tr's 和 td's 在正文中,我想使用 CSS 类来隐藏某些列。

我的 CSS 类如下所示:

.hideAll
{
    display:none;
}

应用此类的最佳/正确方法是什么?到 colgroup 中的 col,到 thead 中的 th,到 tbody 中的 tr 或 td 或同时到其中几个?

我的桌子看起来像这样:

<table>
    <colgroup>
       <col />
       <col />
       <col />
    </colgroup>
    <thead>
        <tr><th></th><th></th><th></th></tr>
    </thead>
    <tbody>
        <tr><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td></tr>
    </tbody>
</table>

非常感谢您提供的任何帮助,蒂姆。

【问题讨论】:

    标签: jquery html css show-hide


    【解决方案1】:

    如果您知道要隐藏的确切列。给它一个类名。

    <table>
    <colgroup>
       <col />
       <col />
       <col />
    </colgroup>
    <thead>
        <tr><th class="target">AAA</th><th>BBB</th><th>CCC</th></tr>
    </thead>
    <tbody>
        <tr><td class="target">111</td><td>111</td><td>111</td></tr>
        <tr><td class="target">222</td><td>222</td><td>222</td></tr>
        <tr><td class="target">333</td><td>333</td><td>333</td></tr>
    </tbody>
    

    然后您可以使用 jquery addClass() 方法将您的 hideAll 类添加到它们。

    $('.target').addClass('hideAll');
    

    Demo

    【讨论】:

    • 不客气。顺便说一句,如果您想删除课程,请使用@andrea.spot 建议的内容。
    【解决方案2】:

    就像@drip 已经告诉你的那样,为你的表的孩子添加一些类名会很有用。

    无论如何,您都可以将给定的类设置为您的元素,如下所示:

    $('myElementSelector').addClass('hideAll');
    

    然后如果你想删除类,代码将是:

    $('myElementSelector').removeClass('hideAll');
    

    对于jQuery选择器,我建议你阅读jQuery selectors' documentation

    但是如果你是 jQuery 世界的新手,并且在未来你不会那么需要它,你可以考虑学习 KnockoutJS,它将你从纯粹的 dom 管理中提升出来。

    希望对你有帮助:)

    【讨论】:

    • 感谢您的快速回复 - 这很有帮助!
    • 很好的回答人!我想我会看看那个 KnockoutJS ;)
    • 很高兴听到你们俩的消息……再见!
    【解决方案3】:

    您几乎可以将它们堆叠并添加类。

    $('col,tr,th,td').addClass('hideAll')
    

    但这真的取决于你到底想隐藏哪一个。

    如果这只是为了“尝试”,那就太好了。但是,如果有一个大型项目,您可能会考虑向表中添加某种类并将其作为目标,而不是页面中的所有元素。

    【讨论】:

      【解决方案4】:

      http://jsfiddle.net/L4TEq/

      我制作了一个简单的脚本,它允许您隐藏整个列,只给列class="hidden"

      这可能有助于并简化您的工作。

      它基于元素index。这样就可以隐藏所有对应的具有相同索引的列的ths和tds。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        • 2017-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多