2011-06-06 50 views
1

我想一個類分配給有10間.index()ul li列表的列表項目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'); 
}); 

回答

4

使用slice獲得在選擇元素的子集:

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

感謝這一個工作。我無法從@Niklas工作 – juFo 2014-04-07 14:11:29

2

雖然我建議使用lonesomeday的方法,這裏是一個辦法純粹使用選擇器:

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

注意,如gtlt使用0開始的索引,如果你想>= 10你需要使用8(即大於9)。

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

+0

不能確定的,如果這是怎樣的[下一個相鄰的選擇(http://api.jquery.com/next-adjacent-Selector/)工作。 – 2011-06-06 09:50:35

+0

@Salman是的,我當然會認爲它應該以'li:lt(20)'結束,但是這並沒有給出預期的結果。但是,我確實不得不同意你的看法,這看起來不正確。 – Niklas 2011-06-06 09:51:59

+0

是的,它實際上是有效的,我只是通過在你的小提琴中更改所有'UL'到'OL'進行檢查。 – 2011-06-06 09:54:22

0

Altough lonesomeday的答案是正確的,可能會更好。這是一個不同的解決方案。

http://jsfiddle.net/E4U6Y/

HTH :)