1

一定很晚了...给定以下 HTML,如何选择除每个 s 中的第一段之外的所有段落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>​&lt;!-- /contentmiddle -->
4

5 回答 5

6

:first-of-type不是 jQuery 选择器,因此除非浏览器在 CSS 中原生支持它,否则使用的解决方案:first-of-type将不起作用。

如果您需要支持较旧的浏览器(IE < 9),则需要使用下一个兄弟选择器~

$('.thePost > p ~ p')
于 2012-10-10T05:41:54.710 回答
4

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

于 2012-10-10T05:37:28.437 回答
2

试试这个

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

或者

$('.thePost').find('p:gt(0)')
于 2012-10-10T05:37:56.047 回答
1

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

于 2012-10-10T05:38:08.973 回答
0

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

于 2012-10-10T05:47:04.890 回答