2012-12-22 178 views
8

可能重複:
Selecting the first 「n」 items with jQueryjQuery的限制因素查詢結果

我有元素的無限可數列表!

是否有從列表頭部查找x元素並停止的功能!

$('.elements').find('li').limit(10) //this does not work 

我試過了goog,但是我用的不夠具體嗎? !

+2

*「我試過的好,但我不能具體足夠?!」*這是什麼意思? –

+0

'$('。elements')。find('li')。eq(10)'解決了這個問題! ref:https://api.jquery.com/eq/ – 2014-04-04 08:48:08

回答

17

是的,你可以使用jQuery的custom :lt selector

例如,這會發現只有在給定的目標列表中的前三個li S:

var firstThree = $("#target li:lt(3)"); 

Live Example | Source

+0

雖然比@ palash的例子更清晰,但它要慢得多,因爲它需要使用jQuery sizzle引擎來理解CSS3選擇器。你的投注者用$('#target li')。slice(0,3);如果表現是目標。 –

+0

@MariusMiliunas:它不是一個CSS3選擇器,它是一個僅限jQuery的選擇器。你說得對,它依靠Sizzle來完成這項工作,不能被卸載到瀏覽器。我沒有看到pala畲的答案,但我剛剛提出並鼓勵你。 –

+0

是的,你說的只是jQuery而已。 –

14

嘗試jQuery slice。您的代碼將是這樣的:

$('.elements').find('li').slice(0,10); 

UPDATE

正如馬呂斯Miliunas和T.J.建議克勞德,基於性能,你可以這樣做:

$('.elements li').slice(0,10); 
+0

對於現代瀏覽器,您可能最好使用$(「。elements li」).sort(0,10)',這樣它就成爲一個可以切換到瀏覽器的查詢選擇器,而不是兩個。 +1不使用jQuery擴展(我有點驚訝地看到我的答案)。 –

+0

只是爲了清楚。'slice()'是上面例子中的jQuery擴展。 Doc:[http://api.jquery.com/slice/](http://api.jquery.com/slice/) – instead