在前2个之后定位全部

时间:2012-01-25 20:00:36

标签: javascript jquery jquery-selectors

说我有类似的东西:

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

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

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

3 个答案:

答案 0 :(得分:4)

您应该将文字标记为

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

然后你可以使用

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

使用标记你没有简单的方法来实现它(至少使用jQuery),因为jQuery没有匹配文本节点的选择器,这就是你想要隐藏的东西。

*编辑如果你特意想在n处停止然后使用(例如,如果n = 7)

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

答案 1 :(得分:2)

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

  

给出一个代表的jQuery对象   一组DOM元素,.slice()   method构造一个新的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()

答案 2 :(得分:0)

您可以使用:ep()选择器来定位索引号。

例如在你的情况下它可能是这样的

$("br:eq(3)")