Справочник 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 | массив) элемент(ы) для сверки.

  1. Примечание:

    .is(':checked') и .is(':visible') — типичное применение: проверка состояния формы или видимости без создания нового набора jQuery.

  2. Примечание:

    Если нужно проверить один конкретный DOM-элемент без jQuery, используйте нативный element.matches(selector) — прямой аналог селекторной формы.

  3. В jQuery 3.x и 4.0:

    Метод не менялся, работает без изменений в 3.7.1 и 4.0. Нативный аналог — Element.prototype.matches(selector), широко поддерживается браузерами. Подробнее о псевдоклассах состояния и селекторах — в статье селекторы jQuery.

Примеры:

  1. Проверить состояние чекбокса перед отправкой формы.

    if ($('#agree').is(':checked')) {
      $('form').trigger('submit');
    }
  2. Условие внутри обработчика делегированного события.

    $('#list').on('click', function(event) {
      if ($(event.target).is('li.removable')) {
        $(event.target).remove();
      }
    });
  3. Сравнение с нативным Element.matches().

    var el = document.querySelector('#agree');
    console.log(el.matches(':checked')); // то же самое, без jQuery

[ наверх ]

Вопросы и ответы

Для чего используется .is() в jQuery?

Позволяет определить, имеется ли в наборе jQuery хотя бы один элемент, соответствующий указанному селектору.

Поиск по материалам

Начните вводить — поиск работает по заголовкам и тексту.

Esc — закрытьВсе материалы →