Селекторы jQuery
Как и в CSS, селекторы в jQuery используются для определения элемента или группы элементов. Все элементы, удовлетворяющие селектору, добавляютя в выборку (jQuery-объект), после чего с ними можно производить любые операции.
Шаблоны написания селекторов позаимствованы из CSS 1-3. Кроме того, в библиотеке jQuery добавлены собственные шаблоны, значительно упрощающие поиск необходимых элементов на странице.
Если в значении любого атрибута используются специальные символы ( !"#$%&'()*+,./:;<=>?@[\]^`{|}~
), тогда при написании селектора эти символы должны экранироваться двумя обратными слешами \\
.
$('input[value = 1.5]') /* неправильно */ $('input[value = 1\\.5]') /* правильно */
Простые селекторы
Ниже приводятся шаблоны простых селекторов с пояснениями.
Основные селекторы
Селектор | Элемент |
---|---|
* |
Универсальный селектор для выбора всех элементов страницы. |
tag |
Все элементы <tag> в документе (типовой селектор). |
.classname |
Элементы, у которых атрибут class имеет значение из нескольких слов и одно из них classname . |
#idname |
Элемент, чей атрибут id имеет значение idname . |
Селекторы атрибутов
Селектор | Элемент |
---|---|
[attr] |
Элементы с атрибутом attr . |
[attr = "val"] |
Элементы, у которых атрибут attr имеет значение "val" . |
[attr != "val"] |
Элементы, у которых атрибут attr отсутствует или имеет значение, отличное от "val" . |
[attr ~= "val"] |
Элементы, у которых атрибут attr имеет значение из нескольких слов и одно из них "val" . |
[attr ^= "val"] |
Элементы, у которых атрибут attr начинается со строки "val" . |
[attr $= "val"] |
Элементы, у которых атрибут attr заканчивается строкой "val" . |
[attr *= "val"] |
Элементы, у которых атрибут attr содержит подстроку "val" . |
[attr |= "val"] |
Элементы, у которых атрибут attr имеет значение "val" или состоит из нескольких слов, разделенных дефисом, и первое из них "val" . |
Основные фильтры
Селектор | Элемент |
---|---|
:eq() |
Элемент под указанным номером из всех выбранных. |
:first |
Первый элемент из выбранных. |
:last |
Последний элемент из выбранных. |
:even |
Элементы с чётными индексами среди выбранных. |
:odd |
Элементы с нечётными индексами среди выбранных. |
:gt() |
Элементы с индексами, превышающими заданный. |
:lt() |
Элементы с индексами, меньше заданного. |
:root |
Корневой элемент документа. В HTML корневым является элемент <html> . |
:header |
Элементы, являющиеся заголовками (<h1> , <h2> и т.д.). |
:target |
Целевой элемент с идентификатором, если на него ссылается URL. |
:animated |
Элементы, которые в момент поиска анимировались. |
:focus |
Элемент, активный в данный момент. |
:lang() |
Элементы с указанным языком содержимого. |
:not() |
Все элементы, кроме тех, которые удовлетворяют указанному селектору. |
Фильтры дочерних элементов
Селектор | Элемент |
---|---|
:first-child |
Элементы, которые являются первыми среди всех сестринских элементов. |
:last-child |
Элементы, которые являются последними среди всех сестринских элементов. |
:nth-child() |
Элементы, которые расположены под определённым номером среди всех сестринских элементов. |
:nth-last-child() |
Элементы, которые расположены под определённым номером среди всех сестринских элементов. Нумерация элементов начинается с конца. |
:only-child |
Элементы, которые не имеют сестринских элементов. |
:first-of-type |
Элементы, которые являются первыми среди выбранных сестринских элементов. |
:last-of-type |
Элементы, которые являются последними среди выбранных сестринских элементов. |
:nth-of-type() |
Элементы, которые расположены под определённым номером среди выбранных сестринских элементов. |
:nth-last-of-type() |
Элементы, которые расположены под определённым номером среди выбранных сестринских элементов. Нумерация элементов начинается с конца. |
:only-of-type |
В выборке остаются только те элементы, у которых все остальные сестринские элементы не попали в выборку. |
Фильтры по содержимому
Селектор | Элемент |
---|---|
:contains() |
Элементы, содержащие заданный текст (регистрозависимый поиск). |
:empty |
Элементы, которые не имеют дочерних узлов (включая текстовые). |
:has() |
Элементы, которые содержат хотя бы один элемент, удовлетворяющий указанному селектору. |
:parent |
Элементы, которые имеют хотя бы один дочерний узел (включая текстовые). |
Фильтры элементов форм
Селектор | Элемент |
---|---|
:button |
Все простые кнопки, то есть элементы <button> и <input type="button"> . |
:input |
Все элементы форм: <input> , <textarea> , <select> и <button> . |
:focus |
Элемент, активный в данный момент. |
:checked |
Все выбранные в данный момент элементы типа "checkbox" , "radio" и выбранные опции <option> элементов <select> . |
:selected |
Все выбранные в данный момент опции <option> элементов <select> . |
:disabled |
Все элементы форм, значения которых изменить нельзя. |
:enabled |
Все элементы форм, значения которых можно изменить. |
:checkbox |
Все элементы типа "checkbox" . |
:file |
Все элементы типа "file" . |
:image |
Все элементы типа "image" . |
:password |
Все элементы типа "password" . |
:radio |
Все элементы типа "radio" . |
:reset |
Все элементы типа "reset" . |
:submit |
Все элементы типа "submit" . |
:text |
Все элементы типа "text" . |
Фильтры видимости
Селектор | Элемент |
---|---|
:hidden |
Все элементы, которые не отображены на странице, но присутствуют в дереве DOM. К ним относятся:
|
:visible |
Все элементы, которые отображены на странице, даже если они имеют нулевые размеры. |
Если необходимо выбрать элементы, которые удовлетворяют сразу нескольким простым селекторам, тогда простые селекторы записываются слитно, образуя цепочку простых селекторов. Каждая такая цепочка должна иметь не более одного типового (или универсального) селектора, который обязательно должен записываться первым. Если типовой селектор не указан, тогда по умолчанию используется универсальный селектор.
В цепочке простых селекторов нельзя использовать пробелы, так как пробел является комбинатором.
Комбинаторы
В таблице ниже представлены комбинаторы, которые можно использовать в селекторе (Sel1
и Sel2
- цепочки простых селекторов).
Комбинатор | Элемент |
---|---|
Sel1 Sel2 |
Элемент Sel2 , который является потомком элемента Sel1 . |
Sel1 > Sel2 |
Элемент Sel2 , который является дочерним для элемента Sel1 . |
Sel1 ~ Sel2 |
Элемент Sel2 , который является сестринским для элемента Sel1 . |
Sel1 + Sel2 |
Элемент Sel2 , который является сестринским для элемента Sel1 и следует непосредственно за ним. |
Группировка селекторов
Если необходимо выбрать элементы, удовлетворяющие разным селекторам, тогда селекторы можно сгруппировать для оптимизации кода. В этом случае селекторы записываются через запятую.
$('h1, .header')