jQuery / CSS:隐藏列的正确方法

Posted

技术标签:

【中文标题】jQuery / CSS:隐藏列的正确方法【英文标题】:jQuery / CSS: proper way to hide a column 【发布时间】: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>

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

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于jQuery / CSS:隐藏列的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

带有 CSS 媒体标签的隐藏或折叠列的 HTML 表格宽度属性

jquerydatatable 获取隐藏列

隐藏列时如何保留表格列的宽度?

如何遍历jquery数据表中的隐藏列

如何遍历jquery数据表中的隐藏列

jQuery可拖动隐藏与CSS3多列