Справочник API
.is() в jQuery
Содержание статьи
-
Категории: Traversing › Filtering
Позволяет определить, имеется ли в наборе jQuery хотя бы один элемент, соответствующий указанному селектору.
Синтаксис и описание:
Добавлено в jQuery 1.0.is( selector )
Добавлено в jQuery 1.6.is( function( index, element ) )
Добавлено в jQuery 1.6.is( selection )
Добавлено в jQuery 1.6.is( elements )
В отличие от большинства методов traversing и filtering, .is() не строит новый набор jQuery, а проверяет текущий набор на соответствие условию и возвращает логическое значение:
true, если хотя бы один элемент набора удовлетворяет критерию.Из-за этого после .is() нельзя продолжать цепочку методов jQuery — результат используется как условие, например в
if. Критерий — тот же набор вариантов, что и у .filter(): селектор, функция-предикат, элемент(ы) или готовый набор jQuery.
Возвращаемое значение: (логическое значение) true, если хотя бы один элемент набора соответствует условию, иначе false.
Параметры:
selector – (строка) селектор, включая псевдоклассы состояния — например, :checked или :visible.
function( index, element ) – (функция) предикат, вызывается в контексте
this === element; должна вернутьtrue/false.selection – (объект jQuery) набор для сверки.
elements – (элемент DOM | массив) элемент(ы) для сверки.
Примечание:
.is(':checked')и.is(':visible')— типичное применение: проверка состояния формы или видимости без создания нового набора jQuery.Примечание:
Если нужно проверить один конкретный DOM-элемент без jQuery, используйте нативный
element.matches(selector)— прямой аналог селекторной формы.В jQuery 3.x и 4.0:
Метод не менялся, работает без изменений в 3.7.1 и 4.0. Нативный аналог —
Element.prototype.matches(selector), широко поддерживается браузерами. Подробнее о псевдоклассах состояния и селекторах — в статье селекторы jQuery.
Примеры:
Проверить состояние чекбокса перед отправкой формы.
if ($('#agree').is(':checked')) { $('form').trigger('submit'); }Условие внутри обработчика делегированного события.
$('#list').on('click', function(event) { if ($(event.target).is('li.removable')) { $(event.target).remove(); } });Сравнение с нативным Element.matches().
var el = document.querySelector('#agree'); console.log(el.matches(':checked')); // то же самое, без jQuery