Справочник API
.eq() в jQuery
Содержание статьи
-
Категории: Traversing › Filtering
Сокращает набор jQuery до 1 (одного) элемента, имеющего указанный индекс (отсчет начинается с 0).
Синтаксис и описание:
Добавлено в jQuery 1.1.2.eq( index )
Добавлено в jQuery 1.4.eq( -index )
Метод .eq() строит новый набор jQuery ровно из одного элемента — того, что стоит на позиции index в исходном наборе (нумерация с нуля). Если элемента с таким индексом нет, результатом будет пустой набор (
.length === 0), без ошибки.Начиная с jQuery 1.4, index может быть отрицательным — отсчёт тогда идёт с конца набора:
.eq(-1)— последний элемент,.eq(-2)— предпоследний.
Возвращаемое значение: (объект) Набор jQuery из одного элемента (или пустой набор).
Параметры:
index – (число) позиция элемента, отсчёт с 0; отрицательное значение — позиция от конца набора.
Примечание:
Отличие от .get(index): тот возвращает «голый» DOM-элемент, к которому методы jQuery напрямую не применить, а .eq() — набор jQuery из одного элемента, к которому можно и дальше цеплять
.css(),.addClass()и другие методы.Примечание:
Похожего результата раньше можно было добиться селектором :eq(index), но начиная с jQuery 3.4 этот псевдокласс объявлен deprecated — jQuery отказывается от собственных позиционных селекторов при переходе на нативный
querySelectorAll. Используйте .eq().В jQuery 3.x и 4.0:
.eq() полностью рабочий метод и в 3.7.1, и в 4.0, изменений не было. Для массивоподобных структур частичный нативный аналог с поддержкой отрицательного индекса —
Array.prototype.at(index)(ES2022), применимый к результату.toArray(). Подробнее о выборе между позиционными селекторами и методами — в статье селекторы jQuery.
Примеры:
Выделить второй элемент списка (индекс 1).
$('li').eq(1).css('font-weight', 'bold');Обратиться к последнему элементу через отрицательный индекс.
$('.slide').eq(-1).addClass('slide-last');Сравнение с .get(): .get(0) — DOM-элемент, .eq(0) — набор jQuery из одного элемента.
var domNode = $('li').get(0); // HTMLElement var jqSet = $('li').eq(0); // объект jQuery, jqSet.length === 1