jquery добавить атрибут к элементу

Статья, в которой рассмотрим какие в jQuery имеются методы для работы с HTML-атрибутами элементов.

Что такое HTML-атрибуты?

HTML-атрибуты — это такие сущности, которые используются для установления различных характеристик HTML элементу. Они задаются внутри открытого тега элемента.

Кроме HTML-атрибутов у нас есть ещё DOM-свойства. Это другие сущности, но связанные с HTML-атрибутами.

Чтобы понять как они связаны, нужно знать, что такое DOM.

DOM — это объектная модель документа, которую строит браузер, в соответствии с HTML-страницей, которую мы запросили, например, введя её URL в адресную строку. В DOM теги становятся объектами (узлами), а HTML-атрибуты — свойствами этих узлов.

Браузер при изменении DOM изменяет HTML-код, и наоборот, при изменении HTML-кода изменяет DOM. При этом синхронизация HTML-атрибутов и соответствующих им DOM-свойств не всегда осуществляется один к одному. Как это происходит можно прочитать в статье «Работа с HTML атрибутами и DOM свойствами»

При этом более предпочтительно выполнять операции не с HTML-атрибутами, а с соответствующими им DOM-свойствами. Для этого в jQuery имеется специальный для этого случая метод prop. Выполнять же операции с атрибутами следует, когда вам это действительно нужно выполнить через HTML.

Методы jQuery для выполнения операций над HTML атрибутами

В jQuery для выполнения действий над HTML-атрибутами имеется два метода .

Первый метод – это attr . Он используется, когда вам нужно, узнать значение требуемого атрибута, добавить к нему новый HTML-атрибут или изменить текущее значение некоторого атрибута на новое.

Второй метод – это removeAttr . Данный метод применяется для удаления определённого атрибута у элемента или набора элементов.

Разберём, как работать с данными методами более подробно.

Как получить значение атрибута в jQuery?

Получить в jQuery значение необходимого атрибута осуществляется с помощью метода prop .

Пример, в котором получим значение атрибута href у элемента #search :

Если вы применили метод attr к набору элементов, то в этом случае он вернёт значение атрибута только для первого элемента этого набора .

Для того чтобы получить значение у каждого элемента набора можно воспользоваться jQuery-методом each или map .

Метод attr возвращает undefined когда вы попытаетесь получить значение атрибута, которого у него нет.

Это можно использовать для проверки наличия определённого атрибута у элемента.

Например, проверим имеется ли атрибут title у элемента #image-logo» :

Как изменить значение атрибута?

Изменение значения атрибута осуществляется тоже с помощью метода attr . Для этого используется следующий синтаксис:

Пример, котором поменяем значение атрибута src у элемента #logo :

Как в jQuery добавить новый атрибут к элементу?

В jQuery, да также, как и в JavaScript, нет различия в операциях, когда мы хотим изменить значение атрибуту или установить новый атрибут.

Пример, в котором всем ссылкам на странице установим атрибут rel со значением nofollow :

Пример, в котором добавим ко всем li , находящихся в списке #list атрибут data-index , которое будет иметь значение в соответсвии с их порядковвым номером:

Если функция ничего не вернула или возвратила undefined , то текущее значение атрибута не будет изменено (оно останется прежним). Данную особенность полезно использовать, когда значение атрибута необходимо установить только в зависимости от некоторых условий.

Как в jQuery удалить атрибут у элемента?

В jQuery удаление атрибута обычно осуществляется с помощью метода removeAttr .

Синтаксис метода removeAttr :

Например, удалим атрибут rel у всех ссылок на странице:

В jQuery удалить атрибут также можно с помощью метода attr . В этом случае ему нужно в качестве значения установить значение null .

Здравствуйте, уважаемые читатель блога LifeExample, хочу пополнить рубрику «jQuery & JavaScript примеры», новой статьей о том как в jQuery добавить атрибут для элемента верстки.

Элементом верстки можно считать любой тег в HTML коде страницы, это может быть

Например, тег по стандартам может содержать такие атрибуты как:

Но ничего не мешает нам использовать собственные атрибуты, например, так:

В этом примере пользовательский атрибут resolution будет содержать настоящее разрешение картинки.

Зачем использовать пользовательские атрибуты

Вопрос о том, как с помощью jQuery добавить атрибут, чаще всего может возникнуть при построении динамических интерфейсов для веб проектов.

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

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

Задача jQuery добавить атрибут

Дано:

    Три див блока с заданными >

    div id = «header» >
    Красный
    / div >

    div id = «content» >
    Зеленый
    / div >

    div id = «footer» >
    Синий
    / div >

    Требуется:

    • При нажатии на каждый из блоков вывести код цвета в формате RGB

    Решение:

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

    Данными строчками кода мы добавим к имеющимся блокам новые атрибуты rgbcolor, которые будут содержать информацию о цвете. Можно каждому блоку добавить атрибут прям в HTML вот так:

    div id = «header» rgbcolor = «255,0,0» >
    Красный
    / div >

    div id = «content» rgbcolor = «0,255,0» >
    Зеленый
    / div >

    div id = «footer» rgbcolor = «0,0,255» >
    Синий
    / div >

    В любой момент мы можем С помощью jQuery удалить атрибут, также быстро как и создали его.

    jQuery удалить атрибут

    Удаление происходит также просто, как и добавление. Опираясь на предыдущее задание, удалить пользовательские атрибуты rgbcolor можно всего одной строкой

    Ну, или если нужно удалить атрибут только для одного блока content, то так:

    Изменить значение атрибута

    Библиотека jQuery, позволяет манипулировать атрибутами, так как нам хочется, я уже привел пример как с помощью jQuery добавить атрибут, и как его удалить. Но часто приходится еще и менять значения в ходе выполнения скрипта.

    Чтобы поменять значение атрибута у элемента нам надо воспользоваться уже знакомой функцией attr .

    Подобно тому, как мы задавали атрибут и его значение, также следует сделать если мы захотим его изменить

    На этом пример работы атрибутами предлагаю завершить, поскольку все, что можно с ними сделать мы уже рассмотрели.

    Теперь мы можем:

    • С помощью jQuery добавить атрибут;
    • С помощью jQuery удалить атрибут;
    • С помощью jQuery изменить атрибут;

    Читайте также похожие статьи:

    Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

    Добавляет классы clName1, clName2, . всем выбранным элементам.

    Если из этих элементов некоторые уже принадлежат каким-то классам, то новый (новые) класс добавится к существующим, а не заменит их.

    .add >jQuery Object

    Добавляет классы, список которых возвращает заданная пользователем функция.

    Возвращаемое ей значение должно представлять из себя строку, с перечислением добавляемых классов через пробел.

    Функция вызывается отдельно для каждого из выбранных элементов.
    При вызове ей передаются следующие параметры:
    index — позиция элемента в наборе,
    >

    .has >boolean

    Проверяет наличие класса className у выбранных элементов страницы.
    Если хотя бы один из элементов содержит этот класс, то функция вернет true, иначе вернет false.

    В примере мы ищем класс с именем selected в разных наборах элементов.

    .removeClass()

    .removeClass(«class1 class2 . «)

    .removeClass(function(index, class))

    .toggle >:jQuery Object

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

    В нашем примере мы переключаем (добавляем/удаляем) класс с именем ‘highlight’ для параграфа на котором был сделал клик.

    Оцените статью