Я немного поигрался с этим. Получение определенного количества элементов DOM на основе указанного класса.
Обновление 27/11/12: оптимизированные версии ниже.
Во-первых, основы, чтобы получить первый и последний элементы, например, так:
var firstSpan = $('span.class:first'), lastSpan = $('span.class:last');
Чтобы получить все элементы, которые соответствуют указанному классу, вот так:
var allSpans = $('span.class').get();
или nth / xth элемент, например, так:
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 () для включения диапазона элементов.
(function($) { //function that gets a range of dom elements against a jQuery selector //returns an array of dom elements $.fn.getRange = function(start,end) { var elems = []; for ( var i = start; i < = end; i++ ) { elems.push(this.get(i)); } return elems; }; //testing console.log($('div').getRange(1,10)); console.log($('div').getRange(10,20)); })(jQuery); [/js] Does anyone know of a better way to achieve this?
Оптимизированные версии Спасибо Владу, Редки и Даниэлю. Используя ломтик. [JS] var $ el = $ ('div'). get (). slice (0,10); console.log ($ эш);
console.log($('div:gt(3):lt(6)'));