Статьи

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

Я немного поигрался с этим. Получение определенного количества элементов 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 ($ эш);

Использование: gt: lt

 console.log($('div:gt(3):lt(6)'));