目标全部<br>'s在前2个之后

Target all <br>'s after the first 2

本文关键字:在前 2个 之后 br 全部 lt 目标 gt      更新时间:2023-09-26

假设我有这样的东西:

Paragraph One
<br>
<br>
Paragraph Two
<br>
<br>
Paragraph Three
<br>
<br>
Paragraph Four
<br>
<br>
Paragraph n
<br>
<br>

是否有一个jQuery选择器,我应该使用它来针对从第二段到第n段的所有内容?一旦我弄清楚如何针对这些段落,我就想把它们设置为隐藏。

编辑:当我提到上面的段落时,我的意思是说一段文字。当前未使用任何p元素。

您应该将文本标记为

<p>par 1</p> 
<p>par 2</p>

然后你可以使用

$("p:gt(0)").hide();

使用您所拥有的标记并没有简单的方法来实现它(至少使用jQuery),因为jQuery没有匹配文本节点的选择器,而这正是您试图隐藏的。

*编辑如果您特别想在n处停止,则使用(例如,如果n=7)

$("p:lt(7):gt(0)").hide();

这就是jquery.slice()方法是为设计的。

给定一个jQuery对象,该对象表示一组DOM元素,.slice()方法构造一个新的jQuery对象从匹配的子集元素。提供的起始索引标识其中一个的位置集合中的元素;如果结束省略,此元素之后的所有元素将包含在结果中。

所以

$('p').slice(3,6).addClass('the-class');
//note Zero Based indexing. Plus it wont include the last element.

实例:http://jsfiddle.net/t9Nmy/

注意——addClass有助于将其可视化,.hide(), .fadeOut(), etc可能就是你想要的

您也可以按如下组合:gt()和:lt()选择器

$('p:lt(6):gt(3)').addClass('the-class');

或者只是

$('p:gt(2)').hide()

您可以使用,:ep()Selector来定位索引号。

例如,在你的情况下,它可能是类似于这个的东西

$("br:eq(3)")