【问题标题】:How to select child nodes but the first element如何选择子节点但第一个元素
【发布时间】:2011-10-29 10:44:18
【问题描述】:

所以我有一张桌子,我想在所有<tr> 元素中设置一个样式,但第一个元素除外。示例:

<table>
    <tr><th>This receives header styles</th></tr>
    <tr><td>This receives item styles</td></tr>
    <tr><td>This receives item styles</td></tr>
    <tr><td>This receives item styles</td></tr>
</table>

我知道我必须使用选择器,但我不知道如何使用,也无法在网络上找到它=S

【问题讨论】:

标签: html css css-selectors


【解决方案1】:

通用同级选择器~ 让您可以选择一个接一个地出现的每个特定元素。你可以使用这个选择器:

table tr:first-child ~ tr

在 IE7+ 中工作。

如果您可以修改您的 HTML 以使其更具语义化,您可以将带有 th 单元格的第一行放在 thead 中,其余的放在 tbody 中:

<table>
  <thead>
    <tr><th>This receives header styles</th></tr>
  </thead>
  <tbody>
    <tr><td>This receives item styles</td></tr>
    <tr><td>This receives item styles</td></tr>
    <tr><td>This receives item styles</td></tr>
  </tbody>
</table>

然后改用这个选择器:

table tbody tr

在您需要时可在较旧的浏览器上使用。

【讨论】:

  • +1,尤其是第二个选项,语义上更好。
  • 我会选择第二个选项。我一直在使用 3 个表格,一个用于页眉,一个用于页脚,另一个用于页脚。但我会像你说的那样换一个。非常感谢!
【解决方案2】:
$('#table-id tr').not(':first-child').addClass('class');

应该这样做

【讨论】:

  • 谢谢,但我必须在没有 jquery 的情况下这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 2011-04-05
  • 2015-06-07
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多