【问题标题】:How to call two nth-child in a table?如何在一个表中调用两个第 n 个孩子?
【发布时间】:2013-11-23 17:51:53
【问题描述】:

我有一个 4*5 的表(4 列,5 行)。

我想在第一列和第二行之后的单元格中添加一个类。

我的代码:

$("tr>td:nth-child(1) tr:nth-child(n+3)").addClass("ClassName");

这不起作用。关于如何做到这一点的任何想法?

附言。 JsFiddle

【问题讨论】:

    标签: jquery css-selectors html-table


    【解决方案1】:

    要选择在第一列和第二行之后的单元格,请使用 CSS 选择器:

    tr:nth-child(n+3) td:nth-child(1)
    

    jQuery:

    $("tr:nth-child(n+3) td:nth-child(1)").addClass("ClassName");
    

    你的小提琴,更新:http://jsfiddle.net/CnUw6/1/

    【讨论】:

    • 完美!这就是我想做的。现在,您知道为什么必须先指定行 (tr) 再指定列 (td) 吗?
    • 是的。因为您首先必须选择父项,然后是子项。例如,选择器$('aa bb') 表示每个bbaa 的子级。如果您选择$('td:something tr:something-else') 之类的内容,在您的示例中,将不会有任何结果,因为没有trtd 的子项。
    • 另一方面,当您使用:$("tr:nth-child(n+3) td:nth-child(1)") 时,您会说:首先从第三个开始给我获取行 (trs)。现在,给我他们属于第一列的孩子 (td)。
    • 这很有意义@acdcjunior !我不知道是否适合在这个线程上问第二个问题......但现在我有第二个问题:与以前相同的实例,将类添加到第一列和第二行之后,但现在我想添加一个类到最后一行。为什么不覆盖最后一行的值?请参阅:jsfiddle.net/japeljoff/CnUw6/2
    • 您将highlight 类添加到td,并将highlight2 类添加到tr。由于tdtr“更具体”,它的风格将占上风。将选择器更改为tr:nth-child(n+5) td,它将选择(并添加类)到tds 而不是tr。这样,由于类的顺序,highlight2 将是有效的:jsfiddle.net/CnUw6/5(注意类的声明事项的顺序:jsfiddle.net/CnUw6/4
    【解决方案2】:

    元素之间需要一个逗号:

    $("tr > td:nth-child(1), tr:nth-child(n+3)").addClass("ClassName");
    

    【讨论】:

    • 此方法将选择第 1 列中的所有元素和第 2 行之后的所有元素。我只想选择第 1 列中的所有单元格,但在第 2 行之后,有意义吗?
    猜你喜欢
    • 2017-03-11
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2021-04-05
    • 2013-01-21
    • 2016-07-08
    相关资源
    最近更新 更多