如何选择索引值在一定范围内的列表项



我想为.index()值在10到20之间的ul li列表的列表项分配一个类。

如何使用jQuery选择这些元素?

<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    ...
    ...
    ...
    ...
    li>Thirty</li>
</ul>

所以我想要类似的东西

$('#id').click(function(){
    //Assign class 'classname' to those li elements 
    //between 10th and 20th (index numbers) in the list
    if([li element's index is between 10 and 20]).addClass('classname');
});

使用slice获取选择中元素的子集:

$('li').slice(10, 20).addClass('classname');

尽管我建议使用loneomeday的方法,但有一种方法可以完全使用选择器:

$("ul li:gt(8) + li:lt(10)").addClass('classname');

请注意,由于gtlt使用基于0的索引,如果想要>= 10,则需要使用8(大于9)。

示例:http://jsfiddle.net/GybxF/21/

Altough loneomeday的答案是正确的,可能更好。这里有一个不同的解决方案。

http://jsfiddle.net/E4U6Y/

HTH:)