jQuery селекторы

Низкоуровневый поиск и проверка элементов описаны в статье $.find(). Там же показаны фильтрация массива через matches(), проверка одного элемента через matchesSelector() и собственные псевдоклассы через $.expr.

Селектор jQuery — это выражение, которое выбирает элемент или набор элементов документа по заданным признакам: например, по имени тега, классу или атрибуту. К выбранным элементам можно применять методы jQuery. Ниже перечислены способы выбора и примеры их использования.

Выбор выполняется через $(): $(".card") создаёт коллекцию найденных элементов. Необязательный контекст ограничивает область поиска; методы .find() и .filter() уточняют выбор относительно уже полученного набора.

jQuery поддерживает CSS-селекторы и собственные расширения, например :contains() и :input. Расширения jQuery нельзя напрямую передавать браузерному querySelectorAll(). Для необычного имени класса или идентификатора используйте $.escapeSelector().

Примеры используют jQuery 4.0.0. Позиционные расширения :first, :last, :eq(), :even, :odd, :lt() и :gt() устарели, но не удалены: предпочитайте методы коллекции. CSS :first-child и :nth-child() к этой группе не относятся и считают положение среди детей родителя, а не индекс коллекции.

Селектор Пример Описание примера
* $("*") Выбирает все элементы в документе (включая <html>, <head> и <body>).
#id $("#test") Выбирает элемент, глобальный атрибут id которого, имеет значение "test" (элемент с определенным идентификатором).
.class $(".test") Выбирает элементы, глобальный атрибут class которых, имеет значение "test".
element $("a") Выбирает все HTML элементы <a> в документе.
selector,selector $("i,b,em,.class") Выбирает элементы i, b, em и элементы с классом class. Повторные совпадения не дублируются.
element element $("div a") Выбирает все элементы <a>, вложенные внутри элементов <div> (селектор потомков).
element > element $("div > strong") Выбирает все дочерние элементы <strong>, у которых родитель - элемент <div> (селектор дочерних элементов).
element + element $("h2 + p") Выбирает все элементы <p>, которые расположены сразу же после элементов <h2>.
element ~ element $("div ~ p") Выбирает следующие элементы, соответствующие правому селектору и имеющие общего родителя с левым; непосредственное соседство не требуется.
:first Устарело $("a:first") Выбирает первый HTML элемент <a> в документе. Устарело с jQuery 3.4.
:last Устарело $("a:last") Выбирает последний HTML элемент <a> в документе. Устарело с jQuery 3.4.
:even Устарело $("tr:even") Выбирает каждый элемент с четным индексом (например: 0, 2, 4 и так далее), или другими словами выбирает каждый нечетный HTML элемент <tr> в документе (например: 1, 3, 5 и так далее). Устарело с jQuery 3.4.
:odd Устарело $("tr:odd") Выбирает каждый элемент с нечетным индексом (например: 1, 3, 5 и так далее), или другими словами выбирает каждый четный HTML элемент <tr> в документе (например: 2, 4, 6 и так далее). Устарело с jQuery 3.4.
:first-child $("li:first-child") Выбирает элементы <li>, которые являются первыми дочерними элементом своего родителя.
:first-of-type $("p:first-of-type") Выбирает все элементы <p>, которые являются первыми дочерними элементами (определенного типа) своего родителя.
:last-child $("li:last-child") Выбирает элементы <li>, которые являются последними дочерними элементами своего родителя.
:last-of-type $("p:last-of-type") Выбирает все элементы <p>, которые являются последними дочерними элементами (определенного типа) своего родителя.
:nth-child(n) $("tr:nth-child(3)") Выбирает каждый элемент <tr>, который является третьим дочерним элементом своего родительского элемента.
:nth-last-child(n) $("li:nth-last-child(3)") Выбирает каждый элемент <li>, который является третьим дочерним элементом своего родительского элемента (считая от последнего дочернего элемента).
:nth-of-type(n) $("img:nth-of-type(2)") Выбирает каждый элемент <img>, который является вторым дочерним элементом своего родительского элемента.
:nth-last-of-type(n) $("img:nth-last-of-type(2)") Выбирает каждый элемент <img>, который является вторым дочерним элементом своего родительского элемента (считая от последнего дочернего элемента).
:only-child $("a:only-child") Выбор каждого элемента <a>, который является единственным дочерним элементом своего родительского элемента (нет других элементов).
:only-of-type $("a:only-of-type") Выбор каждого элемента <a>, который является единственным элементом <a> своего родительского элемента (нет других элементов <a>).
:eq(index) Устарело $("td:eq(3)") Выбирает четвертую ячейку данных (тег <td>) внутри таблицы (индекс начинается с нуля). Устарело с jQuery 3.4.
:gt(index) Устарело $("td:gt(3)") Выбирает все ячейки данных (тег <td>) чей индекс больше трех (индекс начинается с нуля). Устарело с jQuery 3.4.
:lt(index) Устарело $("td:lt(3)") Выбирает все ячейки данных (тег <td>) чей индекс меньше трех (индекс начинается с нуля). Устарело с jQuery 3.4.
:not(selector) $("div:not(.test)") Селектор отрицания выбирает все элементы <div>, кроме тех, глобальный атрибут class которых, имеет значение "test".
:header $(":header") Выбирает все элементы, которые являются заголовками (от <h1> и до <h6>).
:animated $(":animated") Выбирает все элементы, которые находятся в процессе анимации в тот момент, когда селектор используется (только для элементов анимируемых с использованием библиотеки jQuery).
:focus $(":focus") Определяет какой элемент находится в фокусе в данный момент.
:contains(text) $(":contains('Aloha')") Выбирает все элементы, которые содержат текст "Aloha"
:has(selector) $("div:has(h3)") Выбирает все элементы <div>, которые содержат в себе элементы <h3> (в качестве дочернего элемента, либо потомка).
:empty $(":empty") Выбирает все элементы, которые не имеют дочерних элементов и текстовых узлов (пустые элементы).
:parent $(":parent") Выбирает все элементы, которые имеют по крайней мере один дочерний узел (элемент или текст).
:hidden $("div:hidden") Выбирает элементы без области раскладки, например с display: none или со скрытым предком; противоположен :visible.
:visible $("div:visible") Выбирает элементы с областью раскладки, в том числе нулевой ширины или высоты. visibility: hidden и opacity: 0 сами по себе не исключают элемент; это не проверка попадания в видимую область экрана.
:root $(":root") Выбирает элемент, который является корневым для документа.
:lang(language) $("p:lang(ru)") Выбирает элементы по языку, в том числе унаследованному от предка; :lang(en) соответствует также en-US.
[attribute] $("[alt]") Выбирает все элементы, которые имеют атрибут alt с любым значением.
[attribute='value'] $("[src='logo.png']") Выбирает все элементы, которые имеют указанный атрибут (src) со значением logo.png.
[attribute='value'][attribute2='value2'] $("[src='logo.png'][alt='image']") Выбирает все элементы, которые имеют указанные атрибуты (src и alt) со значениями этих атрибутов logo.png для первого и image для второго.
[attribute!='value'] $("[src!='logo.png']") Выбирает все элементы, которые не имеют указанный атрибут, либо имеют указанный атрибут (src) со значением отличным от logo.png (не равно этому значению).
[attribute$='value'] $("[href$='.php']") Выбирает все элементы, значение атрибута href которых, заканчивается на ".php".
[attribute|='value'] $("[title|='ru']") Выбирает элементы, которые имеют глобальный атрибут title со значением равным "ru", либо элементы, значение которых начинается с этого значения и после него сразу следует дефис ("ru-anystring").
[attribute^='value'] $("[title^='eng']") Выбирает элементы, которые имеют указанный глобального атрибут title со значением, которое начинается с "eng".
[attribute~='value'] $("[title~='free']") Выбирает все элементы со значением глобального атрибута title, содержащего определенное слово "free" (слово может быть разделено пробелами).
[attribute*='value'] $("[title*='free']") Выбирает все элементы со значением глобального атрибута title, содержащего указанную подстроку "free".
:input $(":input") Выбирает все элементы <input>, <textarea>, <select> и <button>.
:text $(":text") Выбирает input[type="text"] и input без атрибута type.
:password $(":password") Выбирает все элементы <input>, которые имеют атрибут type со значением password.
:radio $(":radio") Выбирает input[type="radio"] — радиокнопки.
:checkbox $(":checkbox") Выбирает все элементы <input>, которые имеют атрибут type со значением checkbox.
:submit $(":submit") Выбирает input и button с типом submit, включая кнопку, чей тип по умолчанию — submit.
:reset $(":reset") Выбирает все элементы <input> и <button>, которые имеют атрибут type со значением reset.
:button $(":button") Выбирает input[type="button"] и все элементы button, независимо от их типа.
:image $(":image") Выбирает input[type="image"] — кнопки отправки формы в виде изображения.
:file $(":file") Выбирает все элементы <input>, которые имеют атрибут type со значением file.
:enabled $(":enabled") Выбирает элементы формы, поддерживающие отключение, которые сейчас не отключены.
:disabled $(":disabled") Выбирает элементы формы в отключённом состоянии, в том числе отключённые через родительский fieldset.
:selected $(":selected") Выбирает выбранные в данный момент элементы option.
:checked $(":checked") Выбирает отмеченные в данный момент флажки и радиокнопки, а также выбранные option; проверяет состояние, а не только исходные атрибуты.
:target $("p:target") Если идентификатор ресурса (URI) документа содержит фрагмент идентификатора элемента, то селектор выбирет элемент с подобным идентификатором (глобальный атрибут id). Например, элемент <p id = "info"> будет выбран так как URI документа (http://пример.ру/#info) содержит фрагмент идентификатора этого элемента.