Справочник API

.context в jQuery

Содержание статьи
  • Категории: Plugin Authoring ,  Properties › Properties of jQuery Object Instances

    Возвращает элемент (DOM узел), изначально использованный в качестве контекста при создании данного набора jQuery (по умолчанию обычно document).

Синтаксис и описание:

  • Добавлено в jQuery 1.3.context

  • Свойство .context хранило DOM-узел, переданный вторым аргументом в jQuery() в качестве контекста поиска при создании набора (например, при поиске внутри iframe или XML-документа); если контекст не передавался явно, свойство обычно равнялось document.

    Важно: это историческая страница. Свойство помечено устаревшим в jQuery 1.10 и 2.0 и полностью удалено в jQuery 3.0 — в актуальных версиях (3.7.1, 4.0) обращение к $(...).context вернёт undefined, а не ошибку, что может маскировать проблему в старом коде.

Возвращаемое значение: (элемент) DOM-узел контекста, переданный при создании набора; чаще всего document.

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

    .context в первую очередь обслуживал внутреннюю механику метода .live() — раннего способа делегирования событий, который сам был удалён в jQuery 1.9. С исчезновением .live() практическая нужда в .context тоже отпала.

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

    Прямой замены свойству нет — в отличие от многих других удалённых методов, у .context нет современного эквивалента вида .on() вместо .live(). Если контекст создания набора jQuery действительно нужен где-то в логике приложения, его нужно сохранять самостоятельно — например, в отдельной переменной в момент вызова jQuery(selector, context), а не пытаться прочитать его позже с самого набора.

  3. В jQuery 3.x и 4.0:

    Свойства нет ни в 3.7.1, ни в 4.0 (удалено ещё в 3.0). Если в проекте на восстановлении старого кода встречается $(...).context, это верный признак, что фрагмент не обновлялся с эпохи jQuery 1.x — его стоит переписать так, чтобы контекст поиска элементов хранился явно, в переменной, а не считывался с результата выборки. Полный список подобных изменений — в статье jQuery 4.0: что изменилось.

Примеры:

  1. Исторический код, читавший .context — работал до jQuery 3.0, сейчас вернёт undefined.

    // jQuery 1.x–2.x
    var $items = $('li', someContainer);
    console.log($items.context); // было: someContainer
    
    // jQuery 3.x и 4.0
    console.log($items.context); // undefined — свойства больше нет
  2. Как сохранить контекст самостоятельно, если он нужен дальше по коду.

    var searchContext = document.getElementById('app-root');
    var $items = $('li', searchContext);
    
    // Контекст храним отдельно, а не читаем с набора:
    function getSearchContext() {
      return searchContext;
    }

[ наверх ]

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

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

Возвращает элемент (DOM узел), изначально использованный в качестве контекста при создании данного набора jQuery (по умолчанию обычно document).

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

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

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