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

<b>             if (this.host == location.host) return &quot;_self&quot;</b>

<b>             else return ”_blank&quot;; // Внешние ссылки загружать в новых окнах</b>

<b>           });</b>

<b>S(&quot;a&quot;).attr((target: function() {...}}); // Можно также передать функцию</b>

<b>$(&quot;а&quot;). removeAttr(&quot;target&quot;); // Все ссылки загружать в этом окне</b>

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

Метод

<b>css()</b>
напоминает метод
<b>attr(),</b>
но работает не с HTML-атрибутами, а со стилями CSS элемента. При чтении значений стилей метод
<b>css()</b>
возвращает текущий (или «вычисленный»; раздел 16.4) стиль элемента: возвращаемое значение может быть определено в атрибуте
<b>style</b>
или в таблице стилей. Обратите внимание, что нельзя получить значения составных стилей, таких как «font» или «margin». Вместо этого следует запрашивать отдельные стили, такие как «font-weight», «font-family», «margin-top» или «margin-left». При записи значений стилей метод
<b>css()</b>
просто добавляет их в атрибут style элемента. Метод
<b>css()</b>
позволяет указывать имена стилей CSS с дефисами («background-color») или имена свойств в языке JavaScript с переменным регистром символов («backgroundColor»). При чтении значений стилей метод
<b>css()</b>
возвращает числовые значения в виде строк с добавлением единиц измерения в конце. Однако при записи он преобразует числа в строки и добавляет суффикс «рх» (pixels - пикселы), если это необходимо:

<b>$(&quot;h1&quot;).css(&quot;font-weight&quot;); // Насыщенность шрифта первого элемента &lt;h1&gt;</b>

<b>$(&quot;hi&quot;).css(&quot;fontWeight&quot;);  // Допускается использовать имена свойств</b>

<b>$(”h1&quot;).css(&quot;font&quot;);        // Ошибка: нельзя запрашивать составные стили</b>

<b>$(&quot;h1&quot;).css(&quot;font-variant&quot;, &quot;smallcaps”); // Установить стиль всех элементов &lt;h1&gt;</b>

<b>SC’div.note&quot;).css(&quot;border&quot;, &quot;solid black 2px&quot;); // Составные стили можно устанавливать </b>

<b>$(&quot;h1&quot;).css({ backgroundColor: &quot;black&quot;,    // Записать сразу несколько стилей</b>

<b>              textColor: &quot;white&quot;,          // имена с переменным регистром</b>

<b>              fontVariant: &quot;small-caps&quot;,   // лучше подходят на роль имен</b>

<b>              padding: &quot;10рх 2рх 4рх 20рх&quot;,// свойств объекта</b>

<b>              border: &quot;dotted black 4рх&quot; });</b>

<b>// Увеличить размер шрифта во всех элементах &lt;h1&gt; на 25%</b>

<b>$(&quot;h1&quot;).css(&quot;font-size&quot;, function(i.curval) {</b>

<b>     return Math.round(1.25*parseInt(curval));</b>

<b>});</b>

19.2.3. Чтение и запись CSS-классов

Напомню, что значение атрибута

<b>class</b>
(в языке JavaScript доступного в виде свойства
<b>className</b>
) интерпретируется как список имен классов CSS, разделенных пробелами. Обычно бывает необходимо добавить, удалить или проверить присутствие какого-то одного имени в списке, тогда как потребность замещать один список классов другим возникает крайне редко. По этой причине в объекте
<b>jQuery</b>
определены удобные методы для работы с атрибутом
<b>class</b>
. Методы
<b>addClass()</b>
и
<b>removeClass()</b>
добавляют и удаляют классы в выбранных элементах. Метод
<b>toggleClass()</b>
добавляет классы в элемент, если они отсутствуют в нем, и удаляет их, если они присутствуют. Метод
<b>hasClass()</b>
проверяет присутствие указанного класса. Ниже приводятся несколько примеров использования этих методов:

$("h1").toggleClass("hilite", false); //

Добавить класс во все элементы <h1> Добавить 2 класса в <р> после <h1> Передать функцию, чтобы добавить вычисляемый класс во все выбранные элементы

Удалить класс из всех элементов <р> Допустимо удалять несколько классов Удалить вычисляемый класс из элем.

Удалить все классы из всех <div>

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

Действует как addClass Действует как removeClass

Имеет ли какой-нибудь <р> этот класс? То же самое

is() - более гибкий, чем hasClass()

Обратите внимание, что метод

<b>hasClass()</b>
не такой гибкий, как методы
<b>addClass(), removeClass()</b>
и
<b>toggleClass().</b>
Метод
<b>hasClass()</b>
может работать только с одним именем класса и не поддерживает возможность передачи ему функции. Он возвращает true, если хотя бы один из выбранных элементов содержит указанный класс, и false - в противном случае. Метод
<b>is()</b>
(описываемый в разделе 19.1.2) более гибкий и может использоваться для той же цели.

Эти методы объекта

<b>jQuery</b>
подобны методам свойства
<b>classList</b>
, о котором рассказывалось в разделе 16.5, но методы объекта
<b>jQuery</b>
работают во всех броузерах, а не только в тех, которые поддерживают свойство
<b>classList</b>
, определяемое стандартом HTML5. И, конечно же, методы объекта
<b>jQuery</b>
работают с множеством элементов и могут добавляться в цепочки вызовов методов.