选择除第一个N - CSS选择器之外的所有子项

时间:2015-02-28 13:41:14

标签: jquery css jquery-selectors css-selectors

   <td>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
    </td>

除了前3个,我想获得所有p

我是这样做的

td p:not(:nth-child(1),:nth-child(2),:nth-child(3))

但是如果我想要除前20个以外的所有p怎么办?我是否必须像上面那样手动编写?

4 个答案:

答案 0 :(得分:4)

这应该有用。

td p:nth-child(n+5){
  color: red;
}
  <table>
    <tr>
      <td>
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
        <p>5</p>
        <p>6</p>
        <p>7</p>
    </td>
      </tr>
    </table>

因此:

td p:nth-child(n+21)

选择除前20秒以外的所有p。

答案 1 :(得分:3)

更易于使用:gt(index)选择器。这将收集索引大于选择器索引

的匹配元素
$('td p:gt(19)');

请注意,传递的索引为零,因此对于超过20个元素使用索引19

参考::gt() selector docs

答案 2 :(得分:0)

尝试

var p = $("td p").slice(20);

请参阅jQuery.fn.slice

$(function() {
for (var i = 0; i < 30; ++i) {
  $("table td").append("<p>" + i)
}

var p = $("td p").slice(20);
p.html(function(i, html) {
  return html.replace(/.*/, Math.random())
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<td></td>
</table>

答案 3 :(得分:-1)

如果您希望获得除前3:

之外的所有 p

$("td p:gt(2)");