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

时间:2011-06-06 09:37:47

标签: jquery

我想将一个类分配给ul li列表的列表项,其中.index()值介于10到20之间。

如何使用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');
});

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

虽然我建议使用lonesomeday的方法,但这是一种纯粹使用选择器的方法:

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

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

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

答案 2 :(得分:0)

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

http://jsfiddle.net/E4U6Y/

HTH:)