JavaScript. Подробное руководство, 6-е издание, стр. 296

«функция jQuery»

Функция jQuery - это значение

<b>jQuery</b>
или $. Эта функция создает объекты
<b>jQuery</b>
, регистрирует обработчики, которые вызываются, когда дерево DOM будет готово к выполнению операций, а также служит пространством имен библиотеки jQuery. Я обычно использую имя
<b>$()</b>
. Поскольку она служит пространством имен, функция jQuery может также называться «глобальным объектом jQuery», но очень важно не путать ее с «объектом
<b>jQuery</b>
».

«объект jQuery»

Объект

<b>jQuery</b>
- это объект, возвращаемый функцией jQuery. Объект
<b>jQuery</b>
представляет множество элементов документа и может также называться «результатом функции jQuery», «множеством jQuery» или «обернутым набором».

«выбранные элементы»

Когда функции jQuery передается CSS-селектор, она возвращает объект

<b>jQuery</b>
, представляющий множество элементов документа, соответствующих этому селектору. При описании методов объекта
<b>jQuery</b>
я часто буду употреблять фразу «выбранные элементы», ссылаясь на элементы множества. Например, при описании метода
<b>attr()</b>
я мог бы сказать: «метод
<b>attr()</b>
устанавливает HTML-атрибуты выбранных элементов». Вместо более точной, но трудно читаемой фразы: «метод
<b>attr()</b>
устанавливает HTML-атрибуты элементов в объекте
<b>jQuery</b>
, относительно которого он был вызван». Обратите внимание, что слово «выбранных» относится к CSS-селектору и не имеет никакого отношения к элементам, выбираемым пользователем.

«функция библиотеки jQuery»

Функция библиотеки jQuery - это функция, такая как

<b>jQuery.noConflict(),</b>
которая определена в пространстве имен функции jQuery. Функции библиотеки jQuery могут также упоминаться как «статические методы».

«метод jQuery»

Метод jQuery- это метод объекта

<b>jQuery</b>
, возвращаемого функцией jQuery. Наиболее важной частью библиотеки jQuery являются мощные методы, которые она определяет.

Иногда сложно уловить различия между методами объекта

<b>jQuery</b>
и функциями библиотеки jQuery, потому что многие методы и функции имеют одинаковые имена. Обратите внимание, что следующие две строки программного кода выполняют разные операции:

<b>// Вызвать функцию each() библиотеки jQuery, чтобы вызвать функцию f </b>

<b>// для каждого элемента массива а </b>

<b>$.each(a,f); </b>

<b>// Вызвать функцию jQuery(), чтобы получить объект jQuery, представляющий </b>

<b>// все элементы &lt;а&gt; в документе. Затем вызвать метод each() этого объекта jQuery,</b>

<b>// чтобы вызвать функцию f для каждого выбранного элемента. </b>

<b>$(&quot;a&quot;).each(f); </b>

В официальной документации по библиотеке jQuery, которую можно найти на сайте http://jquery.comj такие имена, как

<b>$.each</b>
, используются для ссылки на функции библиотеки jQuery, а такие имена, как .each (с точкой, но без знака доллара), - для ссылки на методы объекта
<b>jQuery</b>
. Вместо них в этой книге я буду использовать термины «функция» и «метод». Что именно подразумевается, обычно будет достаточно очевидно из контекста обсуждения.

*****************************************************

19.1.2. Запросы и результаты запросов

Когда функции

<b>$()</b>
передается CSS-селектор, она возвращает объект
<b>jQuery</b>
, представляющий множество («выбранных») элементов, соответствующих селектору. С CSS-селекторами мы познакомились в разделе 15.2.5, куда вы можете вернуться, чтобы освежить память, - все примеры селекторов, представленные там, могут передаваться функции
<b>$()</b>
. Конкретный синтаксис селекторов, поддерживаемый библиотекой jQuery, подробно будет рассматриваться в разделе 19.8.1. Однако, прежде чем углубиться в особенности синтаксиса селекторов, мы сначала разберемся с тем, что можно делать с результатами запроса.

Возвращаемым значением функции

<b>$()</b>
является объект
<b>jQuery</b>
. Объекты
<b>jQuery</b>
-это объекты, подобные массивам: они имеют свойство
<b>length</b>
и свойства с числовыми именами, начиная с 0 до
<b>length</b>
-1. (Подробнее об объектах, подобных массивам, рассказывается в разделе 7.11.) Это означает, что к содержимому объекта
<b>jQuery</b>
можно обращаться, используя стандартный синтаксис обращения к элементам массива с квадратными скобками:

<b>$(&quot;body&quot;).length // =&gt; 1: документ имеет единственный элемент body </b>

<b>$(&quot;body”)[0] // То же самое, что document.body</b>

Если при работе с объектом

<b>jQuery</b>
вы предпочитаете не использовать синтаксис массивов, вместо свойства
<b>length</b>
можно использовать метод
<b>size(),</b>
а вместо индексов в квадратных скобках - метод
<b>get().</b>
Если потребуется преобразовать объект
<b>jQuery</b>
в настоящий массив, можно вызвать метод
<b>toArray().</b>

В дополнение к свойству

<b>length</b>
объекты
<b>jQuery</b>
имеют еще три свойства, представляющие определенный интерес. Свойство selector хранит строку селектора (если таковая имеется), которая использовалась при создании объекта
<b>jQuery</b>
. Свойство context ссылается на объект контекста, который был передан функции
<b>$()</b>
во вто-ром аргументе, в противном случае оно будет ссылаться на объект Document. Наконец, все объекты
<b>jQuery</b>
имеют свойство jquery, проверка наличия которого является самым простым способом отличить объект
<b>jQuery</b>
от любого другого объекта* подобного массиву. Значением свойства jquery является строка с номером версии библиотеки jQuery: