Выбор первых элементов "n" с помощью jQuery

С помощью JQuery мне нужно выбрать только первые "n" элементы со страницы, например, первые 20 ссылок вместо того, чтобы выбирать все из них с обычным

$("a")

Звучит просто, но в руководстве jQuery нет никаких доказательств чего-то подобного.

Ответ 1

Вероятно, вы хотите прочитать slice. Ваш код будет выглядеть примерно так:

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

Ответ 2

Используйте lt псевдоселектор:

$("a:lt(n)")

Это соответствует элементам до n-го (исключается n-й элемент). Нумерация начинается с 0.

Ответ 3

Я нашел эту заметку в конце lt() docs:

Дополнительные примечания:
Поскольку: lt() является расширением jQuery, а не частью спецификации CSS, запросы с использованием: lt() не могут воспользоваться повышением производительности, предоставляемым встроенным методом DOM querySelectorAll(). Для лучшей производительности в современных браузерах используйте вместо этого $( "ваш-чистый-css-selector" ). Slice (0, index).

Поэтому используйте $("selector").slice(from, to) для улучшения характеристик.

Ответ 5

.slice() не всегда лучше. В моем случае с jQuery 1.7 в Chrome 36 ошибка .slice(0, 20) с ошибкой:

RangeError: превышен максимальный размер стека вызовов

Я обнаружил, что: lt (20) работал без ошибок в этом случае. У меня было, наверное, десятки тысяч совпадающих элементов.