Selecting the first "n" items with jQuery

Jquery

Jquery Problem Overview


With Jquery, I need to select just the first "n" items from the page, for example the first 20 links instead of selecting all of them with the usual

$("a")

Sounds simple but the jQuery manual has no evidence of something like this.

Jquery Solutions


Solution 1 - Jquery

You probably want to read up on slice. Your code will look something like this:

$("a").slice(0,20)

Solution 2 - Jquery

Use lt pseudo selector:

$("a:lt(n)")

This matches the elements before the nth one (the nth element excluded). Numbering starts from 0.

Solution 3 - Jquery

I found this note in the end of the lt() docs:

> Additional Notes:
>Because :lt() is a jQuery extension and not part of the CSS specification, queries using :lt() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").slice(0, index) instead.

So use $("selector").slice(from, to) for better performances.

Solution 4 - Jquery

Try the :lt selector: http://docs.jquery.com/Selectors/lt#index

$('a:lt(20)');

Solution 5 - Jquery

.slice() isn't always better. In my case, with jQuery 1.7 in Chrome 36, .slice(0, 20) failed with error:

RangeError: Maximum call stack size exceeded

I found that :lt(20) worked without error in this case. I had probably tens of thousands of matching elements.

Solution 6 - Jquery

$("a:lt(n)")

JQuery Documentation

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOmiodView Question on Stackoverflow
Solution 1 - JqueryistrubleView Answer on Stackoverflow
Solution 2 - JquerykgiannakakisView Answer on Stackoverflow
Solution 3 - JqueryArlind NushiView Answer on Stackoverflow
Solution 4 - JqueryDavid HellsingView Answer on Stackoverflow
Solution 5 - JqueryKevin GwynnView Answer on Stackoverflow
Solution 6 - JqueryhszView Answer on Stackoverflow