Я написал небольшой вызов функции 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] Вывод:
Это работает таким образом, но я думаю, что это не оптимальное решение, поэтому кто-нибудь знает лучший способ добиться этого?