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

• Метод

<b>querySelectorAll()</b>
был реализован производителям броузеров относительно недавно. Функция
<b>$()</b>
работает не только в новых, но и в старых броузерах.

• Благодаря тому что библиотека jQuery может производить выборку элементов «вручную», селекторы CSS3, поддерживаемые функцией

<b>$()</b>
, могут использоваться во всех броузерах, а не только в тех, что поддерживают CSS3.

• Объект, подобный массиву, возвращаемый функцией

<b>$()</b>
(объект
<b>jQuery</b>
), намного удобнее в работе, чем объект (
<b>NodeList</b>
), возвращаемый методом
<b>querySelectorAll()</b>
.

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

Наряду с методами

<b>each()</b>
и
<b>map()</b>
объект
<b>jQuery</b>
имеет еще один фундаментальный метод -
<b>index().</b>
Этот метод принимает элемент в виде аргумента и возвращает его индекс в объекте
<b>jQuery</b>
или -1, если указанный элемент не будет найден. Однако, что типично для
<b>jQuery</b>
, метод
<b>index()</b>
имеет перегруженные версии. Если в качестве аргумента передать методу
<b>index()</b>
объект
<b>jQuery</b>
, он попытается отыскать первый элемент из этого объекта. Если передать строку, метод
<b>index()</b>
будет использовать ее как CSS-селектор и вернет индекс первого элемента в объекте
<b>jQuery</b>
, соответствующего селектору. А если вызвать метод
<b>index()</b>
без аргументов, он вернет индекс первого элемента в объекте
<b>jQuery</b>
среди элементов одного с ним уровня вложенности.

Последним методом общего назначения объекта

<b>jQuery</b>
, с которым мы познакомимся здесь, является метод
<b>is().</b>
Он принимает селектор в виде аргумента и возвращает true, если хотя бы один из выбранных элементов соответствует указанному селектору. Его можно использовать в функции обратного вызова, передаваемой методу
<b>each(),</b>
например:

<b>$(&quot;div&quot;).each(function() { // Для каждого элемента &lt;div&gt;</b>

<b>  if ($(this).is(”:hidden&quot;)) return; // Пропустить скрытые элементы</b>

<b>  // Выполнить операции с видимыми элементами</b>

<b>}):</b>

19.2. Методы чтения и записи объекта jQuery

Простейшими и часто используемыми операциями, которые выполняются над объектами

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

• Вместо того чтобы определять парные методы, библиотека jQuery использует одни и те же методы как для чтения, так и для записи. Если передать методу новое значение, он запишет это значение. Если новое значение не указано, метод вернет текущее значение.

• При использовании методов для записи они записывают новое значение во все элементы, находящиеся в объекте

<b>jQuery</b>
, и возвращают объект
<b>jQuery</b>
, что позволяет использовать их в цепочках вызовов методов.

• При использовании методов для чтения они читают значение только из первого элемента в наборе и возвращают единственное значение. (Если необходимо получить значения из всех элементов, используйте метод

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

• При использовании методов для записи они часто могут принимать объекты в виде аргументов. В этом случае каждое свойство указанного объекта будет определять имя и устанавливаемое значение.

• При использовании методов для записи они часто могут принимать вместо значений функции. В этом случае функция будет использоваться для вычисления устанавливаемого значения. Элемент, для которого должно быть вычислено значение, будет передан функции в ссылке this, в первом аргументе будет передан индекс элемента, а во втором аргументе - текущее значение.

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

<b>jQuery</b>
.

19.2.1. Чтение и запись значений HTML-атрибутов

Метод

<b>attr()</b>
объекта
<b>jQuery</b>
- это метод чтения/записи значений HTML-атрибутов, и к нему относятся все обобщения, описанные выше. Метод
<b>attг()</b>
предусматривает решение проблемы несовместимости броузеров и обработку специальных случаев и позволяет использовать имена HTML-атрибутов или имена эквивалентных им свойств в языке JavaScript (где они отличаются). Например, можно использовать имя «for» или «htmlFor», «class» или «className».
<b>removeAttr()</b>
- это родственная функция, которая полностью удаляет атрибут из всех выбранных элементов. Ниже приводятся несколько примеров использования этих методов:,

<b>$(&quot;form&quot;).attr(&quot;action&quot;);               // Получить атрибут action 1-й формы</b>

<b>$(&quot;#icon&quot;).attr(&quot;src&quot;, &quot;icon.gif&quot;); // Установить атрибут sre </b>

<b>$(&quot;#banner&quot;).attr({src:&quot;banner.gif&quot;, alt:&quot;Advertisement&quot;, // Установить сразу 4 атрибута </b>

<b>                        width:720, height:64});</b>

<b>$(&quot;a&quot;).attr(&quot;target&quot;, &quot;_blank&quot;); // Все ссылки загружать в новых окнах</b>

<b>S(&quot;a&quot;).attr(&quot;target&quot;, function() { // Локальные ссылки загружать локально</b>