Answers:
为此,您需要使用样式表。
<td style="display:none;">
td:first-child { display:none; }
您可以使用nth-child
CSS选择器隐藏整个列:
#myTable tr > *:nth-child(2) {
display: none;
}
这在假设列N的单元格(它是a th
或td
)始终是其行的第N个子元素的情况下起作用。
如果希望列号是动态的,则可以使用querySelectorAll
或任何具有类似功能的框架来实现,例如jQuery
:
$('#myTable tr > *:nth-child(2)').hide();
(jQuery解决方案还可以在不支持的旧版浏览器上使用nth-child
)。
您还可以使用:
<td style="visibility:hidden;">
or
<td style="visibility:collapse;">
它们之间的区别是“隐藏”隐藏了单元格,但保留了空格,但使用“折叠”,则不像display:none那样保留空格。隐藏整个列或行时,这一点很重要。
visibility: collapse
是专门为处理单元格显示/隐藏而设计的,因为在重新计算单元格宽度/高度之间存在一个差异display:none
。请参阅developer.mozilla.org/zh-CN/docs/Web/CSS/visibility#Values
科斯的答案几乎是正确的,但可能会带来有害的副作用。这是更正确的:
#myTable tr td:nth-child(1), #myTable th:nth-child(1) {
display: none;
}
CSS(级联样式表)将级联属性为其所有子级。这意味着*:nth-child(1)
将隐藏td
每个子元素的第一个tr
,并隐藏所有td
子元素的第一个元素。如果您的任何人td
有按钮,图标,输入或选择之类的东西,则第一个将被隐藏(哇!)。
即使您当前没有隐藏的事物,也可以在需要添加失败时将挫败感想象出来。不要那样惩罚你未来的自我,这将是一个调试的痛苦!
我的回答只会隐藏在第一td
和th
所有tr
在#myTable
保持你的其他元素的安全。
引导人们.hidden
在上使用类<td>
。
您也可以使用col元素https://developer.mozilla.org/en/docs/Web/HTML/Element/col隐藏列
要隐藏表中的第二列:
<table>
<col />
<col style="visibility:collapse"/>
<tr><td>visible</td><td>hidden</td></tr>
<tr><td>visible</td><td>hidden</td></tr>
已知问题:这在Google Chrome中不起作用。请通过https://bugs.chromium.org/p/chromium/issues/detail?id=174167为该错误投票
<!doctype html>
<html lang="en">
<head>
<style id="myStyleSheet">
...
</style>
var column = 3;
var styleSheet = document.getElementById("myStyleSheet").sheet;
var rule = "table tr td:nth-child("+ column +"),table th:nth-child("+ column +")
{display: none}";
styleSheet.insertRule(rule);