Select 除了第一个 N - CSS Select 或者

Select all Children except first N - CSS Selector

   <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 怎么办?我必须像上面那样手动编写吗?

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

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

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

参考::gt() selector docs

这应该有效。

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)

到 select 除了前 20 秒之外的所有 p。

尝试

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 个以外的所有 p :

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