Статьи

jQuery выбрать первые x предметов определенного класса

Я написал небольшой вызов функции jQuery .getRange (), который возвращает определенное количество элементов DOM для селектора jQuery (то есть элементов на основе указанного класса или идентификатора). Он использует функцию jQuery.get () и в основном является его расширением, но позволяет возвращать диапазон элементов.

Во-первых, вы должны знать, чтобы получить первый и последний элементы следующим образом:

var firstSpan = $('span.class:first'),
    lastSpan = $('span.class:last');

Чтобы получить все элементы, которые соответствуют указанному классу, вот так:

 var allSpans = $('span.class').get();

или n-й элемент так:

 var firstSpan = $('span.class').get(0),
    secondSpan = $('span.class').get(1);
    //etc...

Но как получить, скажем, первые 10 элементов или 10-20 элементов?

Было бы неплохо пойти что-то вроде:

 var mySpans = $('span.class').get(0,10);

К сожалению, функция .get () не позволяет передавать диапазон, а только один индекс.

Итак, вот моя попытка использовать функцию jQuery .get () для включения диапазона элементов.

(Функция ($)
{
// функция, которая получает диапазон элементов dom против селектора jQuery
// возвращает массив элементов dom
$ .fn.getRange = функция (начало, конец)
{
var elems = [];
for (var i = start; i <= end; i ++) {elems.push (this.get (i)); } вернуть элементы; }; // тестирование console.log ($ ('div'). getRange (1,10)); console.log ($ ( 'DIV') getRange (10,20).); }) (Jquery); [/ js] Вывод: get-range

Это работает таким образом, но я думаю, что это не оптимальное решение, поэтому кто-нибудь знает лучший способ добиться этого?