如何在jQuery中选择一组多个匹配元素中除第一个之外的所有元素?

时间:2012-10-10 05:34:59

标签: jquery jquery-selectors

一定要迟到了......鉴于以下HTML,除了每个div.thePost内的第一段以外,如何选择所有段落?

我试过了:

$('.thePost').children('p:gt(0)')

$('.thePost p:gt(0)')

$('.thePost > p:gt(0)')

所有这些都适用于第一个div.thePost但最终选择<p>类的任何其他div中的所有其他thePost标记。

<div id="contentmiddle">

<div class="thePost">

  <h1>...</h1>

  <h3>...</h3>

  <span>...</span> 

  <p>...</p>
  <p>...</p>
  <p>...</p>
  <p>...</p>

</div><!-- /thePost -->

<div class="thePost">

  <h1>...</h1>

  <h3>...</h3>

  <span>...</span> 

  <p>...</p>
  <p>...</p>
  <p>...</p>
  <p>...</p>

</div><!-- /thePost -->

</div>​<!-- /contentmiddle -->

5 个答案:

答案 0 :(得分:6)

:first-of-type is not a jQuery selector,因此除非浏览器在CSS中原生支持,否则使用:first-of-type的解决方案将无效。

如果您需要支持旧版浏览器(IE <9),则需要使用next siblings selector ~代替:

$('.thePost > p ~ p')

答案 1 :(得分:4)

$('.thePost > p:not(:first-of-type)')

怎么样?

答案 2 :(得分:2)

试试这个

$('.thePost > p:not(:first)')

OR

$('.thePost').find('p:gt(0)')

答案 3 :(得分:1)

$('.thePost p:not(:first-of-type)')

答案 4 :(得分:0)

你也可以试试 $('p:gt(0)','.thepost'));