链接jQuery选择器:lt和:gt

glm*_*ndr 16 jquery jquery-selectors chaining

我有一个超过9行的表.

如果我这样做:$('table tr:gt(3):lt(6)'),我最后会收到3或6个元素,为什么?是否所有选择器都应用于相同的主选择,或者它们是否连续应用于不同的选择?

Bli*_*ixt 30

它们是按顺序应用的,所以首先你将过滤掉前四个元素(:gt(3)),然后你将过滤掉:lt(6)已经过滤的集合的第六个()元素之后的所有元素.

想象一下这个HTML:

<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
Run Code Online (Sandbox Code Playgroud)

然后执行以下jQuery:

$('br:gt(3):lt(6)').addClass('sel');
Run Code Online (Sandbox Code Playgroud)

你现在将拥有:

<br/><br/>
<br/><br/>
<br class="sel"/><br class="sel"/>
<br class="sel"/><br class="sel"/>
<br class="sel"/><br class="sel"/>
<br/><br/>
Run Code Online (Sandbox Code Playgroud)

  • 注意`:lt(n)`和`:lt(n)`选择器是0索引和非包含的. (5认同)

Sco*_*ttE 26

我建议你改用slice()方法.

http://docs.jquery.com/Traversing/slice#startend

$('table tr').slice(2, 5).addClass("something");
Run Code Online (Sandbox Code Playgroud)