Jquery значение атрибута. Атрибуты и свойства

Влад Мержевич

Каждый атрибут тега содержит значение определённого типа и формата написания. Различают следующие типы значений: ключевые слова, числа, дата и время, цвета, URL.

Для всех атрибутов характерны следующие принципы.

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

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

Ключевые слова

Это заданный фиксированный набор определённых слов, которые допустимо подставлять в качестве значений атрибутов. Ключевые слова не чувствительны к регистру и их можно писать любым удобным способом. Так, значения handheld , Handheld и HANDHELD по своему действию одинаковы.

В примере 1 показано создание формы, которая отправляется на сервер методом POST с помощью значения post атрибута method .

Пример 1. Метод отправки формы

HTML5 IE Cr Op Sa Fx

Ключевые слова

В данном примере в элементе

используется атрибут method со значением post . Если этот атрибут не указать, то будет подставляться значение get , применяемое по умолчанию. Для первого элемента атрибут type не задан, поскольку он подставляется автоматически со значением text , а для второго атрибут type уже указан для создания кнопки отправки формы.

Числа

К числам относятся: положительные целые числа, содержащих одну или несколько цифр от 0 до 9; отрицательные числа; а также вещественные или дробные (например, 0.5).

Положительные целые числа

Активно применяются когда надо задать количество колонок, ограничить размер поля формы и количество вводимых символов, установить ширину и высоту рисунка и др. В примере 2 показано создание нумерованного списка, начинающегося с 11.

Пример 2. Использование целого числа

HTML5 IE Cr Op Sa Fx

Целое число

  1. Чебурашка
  2. Крокодил Гена
  3. Шапокляк

Отрицательные целые числа

Отрицательные целые числа применяются реже по сравнению с положительными по понятным причинам. С их помощью нельзя задать перечисление или ширину, хотя бы потому, что рисунков с отрицательной шириной не бывает. Так что в HTML такие числа применяются в основном в формах для ограничения ввода.

Для указания отрицательного числа перед ним ставится знак минус (-) без пробелов (например: -15). В примере 3 показано использование отрицательных значений.

Пример 3. Число со знаком минус

HTML5 IE Cr Op Sa Fx

<a href="/kak-hranyatsya-otricatelnye-chisla-v-pamyati-kompyutera-chto-nuzhno-znat-pro.html">Отрицательные числа</a>

Введите число с шагом 2

Браузер Firefox не поддерживает тип number и вместо него отображает обычное текстовое поле.

Вещественные числа

Сюда входят десятичные дроби, для разделения целой и дробной части используется точка. Число может быть и отрицательным, тогда перед ним ставится знак минус (-).

Примеры вещественных чисел: -0.84, 3.1415926, 1.717.

Есть и вторая форма записи вещественных чисел, когда после числа добавляется латинский символ e или E, а затем число означающее степень, причём оно может быть и со знаком минус. Это аналогично тому, что число перед E умножают на 10 в степени, указанной после символа E. Вот несколько примеров для наглядности.

3.1415926e5 = 3.1415926 × 10 5 = 3.1415926 × 100000 = 314159.26

5e-2 = 5 × 10 -2 = 5 / 100 = 0.05

78e2 = 78 × 10 2 = 7800

Браузер Opera некорректно работает с вещественными числами, в которых есть заглавная буква E, так что вставляйте строчную букву e.

Дата и время

Используется для указания года, месяца и года или полной даты, а также времени.

Дата и время задается в особом формате, пример которого показан в табл. 1.

Для каждой единицы существует своя заданная форма и ограничения.

  • Год - задается четырьмя цифрами (1860).
  • Месяц - две цифры (01 - январь, 02 - февраль, 12 - декабрь).
  • День - две цифры от 01 до 31.
  • Час - две цифры от 00 до 23.
  • Минуты - две цифры от 00 до 59.
  • Секунды - две цифры от 00 до 59.
  • Часовой пояс - часы и минуты с указанием знака плюс или минус.

Дата и время разделяются между собой заглавной латинской буквой T. Часовой пояс при необходимости пишется после времени со знаком плюс или минус. К примеру, для Москвы часовой пояс будет +03:00.

Цвета

Значение цвета представляет собой три числа в диапазоне от 0 до 255 в шестнадцатеричном представлении описывающие красную, зелёную и синюю компоненту в цветовом пространстве sRGB. Каждое значение цвета должно начинаться с символа решётки (#), после которого могут идти следующие шесть цифр или букв в любом регистре: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Другие символы не допускаются. Подробнее о цвете в HTML смотрите .

URL

URL - это адрес документа или файл. Содержит в себе несколько частей, не все из которых являются обязательными. Это протокол, имя хоста, порт, путь, строка запроса и хэш. В табл. 2 перечислены параметры URL с их описанием.

Табл. 2. Параметры URL
Параметр Описание Пример
протокол Сетевой протокол. Для гипертекстовых документов это HTTP. http://
https://
имя хоста Адрес сайта. сайт
www.google.com
порт Системный ресурс, выделяемый веб-серверу. По умолчанию имеет значение 80, его можно не указывать. :80
путь Путь к документу на сайте. /open/doc.html
строка запроса Строка, в которой передаются параметры GET-запроса со значениями. Пишется после знака вопроса (?). ?name=vasya
хэш Строка после знака решётки (#). #top

В зависимости от наличия тех или иных параметров различают абсолютные и относительные адреса. Абсолютный адрес содержит порт и имя хоста, относительный - путь к документу. Строка запроса и хэш допустимо добавлять к адресу любого типа. Если URL содержит только хэш, то в текущем документе произойдёт переход к элементу, у которого задано id="имя_хэша" . Решётка в атрибуте id в таком случае не пишется.

На URL влияет с атрибутом href , адрес документа с его учётом может оказаться другим, чем тот, что задан явно.

Вопросы для проверки

1. Коля написал ошибочное число в следующем коде, но валидатор не выдал никакой ошибки. Почему?

2. Даша использовала число 12g5 в строке

Но браузер Chrome не показал никакого результата. Почему?

3. Сколько способов есть в HTML чтобы задать оранжевый цвет?

Сохраните эту страницу для тестирования приведенных ниже примеров.

Библиотека jQuery позволяет получать и устанавливать значения атрибутов элементов, содержащихся в объекте jQuery. Методы jQuery, предназначенные для работы с атрибутами, описаны в таблице ниже:

Методы для работы с атрибутами
Метод Описание
attr(имя) Возвращает значение атрибута с указанным именем для первого из элементов, содержащихся в объекте jQuery
attr(имя, значение) Устанавливает значение атрибута с указанным именем для всех элементов, содержащихся в объекте jQuery
attr(объект отображения) Устанавливает атрибуты, указанные в объекте отображения, для всех элементов, содержащихся в объекте jQuery
attr(имя, функция) Устанавливает указанный атрибут для всех элементов, содержащихся в объекте jQuery, с помощью функции
removeAttr(имя), removeAttr(имя) Удаляет атрибут (атрибуты) из всех элементов, содержащихся в объекте jQuery
prop(имя) Возвращает значение указанного свойства для первого из элементов, содержащихся в объекте jQuery
prop(имя, значение), prop(объект отображения) Устанавливает значение одного или нескольких свойств для всех элементов, содержащихся в объекте jQuery
prop(имя, функция) Устанавливает значение указанного свойства для всех элементов, содержащихся в объекте jQuery, с использованием функции
removeProp(имя) Удаляет указанное свойство из всех элементов, содержащихся в объекте jQuery

Если метод attr() вызывается с одним аргументом, jQuery возвращает значение указанного атрибута для первого из элементов выбранного набора. Соответствующий пример приведен ниже:

$(function() { var srcValue = $("img").attr("src"); console.log("Значение атрибута: " + srcValue); });

В этом сценарии мы выбираем все элементы img в документе, а затем используем метод attr() для получения значения атрибута src, при считывании которого получаем строку. На консоль выводится следующий результат:

Получение значения атрибута для всех элементов, содержащихся в объекте jQuery, обеспечивается совместным применением методов each() и attr():

$(function() { var srcValue = $("img").each(function(index, element) { console.log("Значение атрибута src: " + $(this).attr("src")); }); });

В этом сценарии из объекта HTMLElement, передаваемого функции в качестве аргумента, с помощью функции $() создается объект jQuery. Этот объект содержит единственный элемент, который идеально подходит для метода attr().

Установка значений атрибутов

Если метод attr() используется для установки значения атрибута, то изменение применяется ко всем элементам, содержащимся в объекте jQuery. Таким образом, в данном случае метод ведет себя иначе, чем при считывании атрибутов, когда возвращается лишь значение атрибута одного элемента. При установке атрибута метод attr() возвращает объект jQuery, что означает возможность использования цепочки вызовов.

Пример сценария, выполняющего установку значения атрибута, приведен ниже:

$(function() { $("img")..png"); });

В этом сценарии выбираются все элементы img в документе, и для атрибута src устанавливается ссылка на картинку lily.png. Установленное значение применяется ко всем выбранным элементам, как показано на рисунке:

Установка нескольких атрибутов

Можно установить значения нескольких атрибутов одним вызовом метода attr(), передав ему в качестве аргумента объект. Свойства такого объекта интерпретируются как имена атрибутов, а значения свойств - как значения атрибута. Этот объект принято называть объектом отображения (map object) . Соответствующий пример приведен ниже:

$(function() { var attrValues = { src: "http://сайт/downloads/jquery/lily.png", style: "border: thick solid red" }; $("img").attr(attrValues); });

В этом сценарии создается объект, определяющий свойства с именами src и style. Далее в документе выбираются элементы img, и методу attr() передается объект отображения. Вид страницы в окне браузера приведен на рисунке:

Динамическая установка значений атрибутов

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

$(function() { $("img").attr("src", function(index, oldVal) { if (oldVal.indexOf("rose") >.png"; } else if ($(this).closest("#row2").length >.png"; } }); });

Аргументы, передаваемые указанной функции, - это индекс обрабатываемого элемента в наборе и прежнее значение атрибута. Переменная this ссылается на текущий обрабатываемый объект HTMLElement. Если вы хотите изменить атрибут, то функция должна вернуть строку, содержащую новое значение. Если же результат не возвращается, то используется прежнее значение атрибута. В данном примере функция используется для избирательного изменения изображений, отображаемых элементами img.

Удаление атрибутов

Атрибуты можно удалять (отменять установку) с помощью метода removeAttr() , как показано в примере ниже.

Как установить или изменить значение атрибута с помощью jQuery

5 (100%) 3 votes

Библиотека jQuery предоставляет возможность установить или изменить значение атрибутов двумя способами. Для установки и изменение значение атрибутов используется метод.attr(). Мы уже об этом методе говорили — кроме установки или изменение, с помощью этого метода мы можем .

Синтаксис метода.attr() для установки/изменение значение

  • attr(name, value)
    • Устанавливает указанному атрибуту переданное значение для всех элементов в объекте jQuery.
  • Параметры
    • name — (Строка) Имя атрибута, который должен быть установлен.
    • value — (Строка | Число | Логический тип | Функция) Указывает значение атрибута, который может быть любое выражение JavaScript. Любое значение, кроме функции, преобразуется в строку. Функция вызывается для каждого элемента в наборе, передает индекс элемента и текущее значение атрибута с данным именем в элементе. Возвращаемое функцией значение становится значением атрибута.
  • Возвращает
    • Коллекцию jQuery.

Пример использование:

$("#my_image").attr("title", "My Image");

Первый вариант использование метода на первый взгляд кажется простым, но это не так! Как уже поняли, вторым параметром (value) метод.attr() принимает значение, которое будет установлено. Значение value может быть любым выражением JavaScript, который в конечном итоге вернет строку.

Станет куда интереснее, когда параметр value будет встроенной функцией или ссылкой на функцию. В таких случаях функция вызывается для каждого извлеченного элемента с возвращаемым значением функции, используемым в качестве значения атрибута. Когда вызывается функция, ей передается два параметра. Один из них содержит отсчитываемый от нуля индекс элемента в наборе, а другой — текущее значение атрибута с именем элемента. Кроме того, элемент устанавливается в качестве контекста функции (this) для ее вызова. Это позволяет функции настроить свою обработку для каждого конкретного элемента — главное преимущество использования ее таким образом.

Пример использование в качестве значение метода.attr() функцию:

$("").attr("title", function(index, previousValue) { return previousValue + "Я элемент " + index + " и меня зовут " + (this.id || "unset"); });

С помощью этого метода мы находимся на странице все HTML элементы, которые имеют атрибут title, и меняем атрибут каждого элемента. Изменение происходит путем добавления к имеющемуся значению строки, составленной с использованием индекса элемента в DOM и идентификатора атрибута каждого конкретного элемента, если таковой имеется, или в противном случае — строки ‘unset’ (позволяет сбросить все настройки).

Второй вариант применения метода.attr() — это установки / изменение значение нескольких атрибутов за раз.

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

  • attr(attributes)
    • Использует свойства и значения, указанные передаваемым объектом, для установки соответствующих атрибутов на всех элементах соответствующего набора.
  • Параметры
    • name — (Строка) Имя атрибута, который должен быть установлен.
    • attributes — Объект, свойства которого копируются как атрибуты ко всем элементам в наборе.
  • Возвращает
    • Коллекцию jQuery.

С помощью данного варианта использование метода attr() можно очень быстро изменить или установить значение нескольких атрибутов по всем элементам набора. Метод принимает один параметр и это должен быть объектом. Свойства объекта — это имена тех атрибутов, с которыми хотим работать.

Пример использование:

$("input").attr({ value: "", placeholder: "Поиск по сайту", title: "Пожалуйста, введите значение" });

Давайте разберем пример выше. Мы находимся на странице все элементы input и изменяем атрибуты value, placeholder и title всех найденных элементов, если они есть, а если нет, то добавляем.

ПРЕДУПРЕЖДЕНИЕ

Изменение атрибута type элемента input или button, которые созданы через метод document.createElement(), приводит к исключению в браузере Internet Explorer 6 — 8.

Мы уже разобрались. Мы выяснили, что у них есть содержимое. Однако это ещё не всё. У тегов также есть атрибуты, которые расширяют их возможности, а у атрибутов, в свою очередь, есть значения. С их помощью элементу можно задавать параметры, определять стиль оформления. Например, тегом

вы обозначили абзац. Но как сделать, чтобы он был выровнен по правому краю? Для этого понадобится определённый атрибут с соответствующим значением. Как некоторые теги не имеют пары, так и некоторые атрибуты могут употребляться без значений.

Как писать атрибуты?

Атрибуты - зарезервированные слова (как и теги, только без угловых скобок), значения же их могут быть разными. Так же, как и теги, атрибуты со значениями рекомендуется писать маленькими буквами, хотя браузерам, в общем-то, безразлично - это просто правило хорошего тона: по-русски ведь ТОЖЕ НЕ ПРИНЯТО ПИСАТЬ ПРИ ВКЛЮЧЕННОМ CAPS LOCK. А чем HTML хуже?

Значения с атрибутами записываются в таком формате:

Атрибут=”значение” lang=”en”

Писать атрибуты всегда нужно внутри открывающего тега, после зарезервированного слова.

Абзац

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

Универсальные атрибуты

Каждый HTML-тег наделён собственным набором атрибутов. Некоторые атрибуты могут быть доступны для нескольких тегов, другие же могут работать только с одним. Ещё есть группа универсальных (глобальных) атрибутов, которые можно использовать с любым тегом. Вкратце ознакомимся с атрибутами этой категории.

  • accesskey позволяет задать сочетание клавиш для доступа к определённому объекту страницы. Например, вы можете сделать так, чтобы с помощью комбинации клавиш Alt+1 пользователь переходил по определённой ссылке. Таким образом разработать систему клавишной навигации.

В качестве значения атрибута могут выступать цифры 0-9 или буквы латинского алфавита:

Ссылка будет открываться по нажатию сочетания клавиш с единицей

  • class позволяет связать тег с заранее заданным с помощью CSS оформлением. Использование атрибута позволяет существенно уменьшить код, ведь вместо того, чтобы повторять ввод одного и того же блока CSS, можно просто ввести имя соответствующего ему класса.
  • С помощью contenteditable можно разрешить пользователю редактировать любой элемент HTML-страницы: удалять, вставлять, изменять текст. Этот же атрибут даёт возможность редактирование и запретить. Значения имеет всего два: true - правку разрешить, false - запретить.
  • При помощи атрибута contextmenu вы можете наделить любой элемент документа уникальными пунктами контекстного меню на своё усмотрение. Само меню создаётся в теге , а атрибуту contextmenu присваивается его идентификатор.
  • dir определяет направление текста: слева направо (ltr) или справа налево (rtl) .
  • draggable позволяет запретить (false) или разрешить (true) пользователю перетаскивать наделённый этим атрибутом элемент страницы.
  • dropzone указывает браузеру, что делать с перетаскиваемым элементом: копировать (значение copy ), перемещать (move ) или создать на него ссылку (link) .
  • hidden - атрибут, позволяющий скрыть содержимое элемента, чтобы оно не отображалось в браузере. Если атрибуту задано значение false, объект отображается, true - скрывается.
  • id задаёт идентификатор элемента - своего рода имя, которое нужно для простой смены стиля объекта, а также для того, чтобы к нему могли обращаться скрипты. Значением атрибута и будет его имя. Начинаться оно должно обязательно с латинской буквы, и может содержать цифры, буквы всё того же латинского алфавита (большие и маленькие), а также символы дефиса (-) и подчёркивания (_) . Русских букв содержать не может.
  • lang помогает браузеру понять, на каком языке написан контент, и задать ему соответствующий стиль (например, в языках могут использоваться разные кавычки). Значениями выступают коды языков (русский - ru , английский - en и т. п.).
  • spellcheck включает (true) или отключает (false) проверку правописания. Особенно полезно использовать атрибут в тегах полей форм, куда текст будет вводить пользователь.
  • style позволяет задать оформление элемента с помощью CSS-кода.
  • tabindex даёт возможность определить, сколько раз пользователю придётся нажать клавишу Tab, чтобы фокус получил объект с этим атрибутом. Количество нажатий определяет значение атрибута - целое положительное число.
  • title - всплывающая подсказка, которая появится, если подвести мышку к элементу и на некоторое время оставить её неподвижной. Строка в значении и будет подсказкой.
  • translate разрешает (yes) или запрещает (no) перевод содержимого тега.
  • align задаёт выравнивание элемента. Например, с его помощью можно выровнять текст по левому краю (значение left ), по правому краю (right ), по центру (center) или по ширине (justify) . Для изображений (тег ) также доступно выравнивание по верхней границе самого высокого элемента строки (top ), по нижней границе (bottom) , а значение middle делает так, что средняя линия картинки совпадает с базовой линией строки.

Стоит иметь в виду, что использовать атрибут align не рекомендуется, а выравнивать текст лучше с помощью CSS.

Пример использования атрибутов

В качестве примера рассмотрим строку HTML-кода:

Этот текст можно редактировать

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

Разберём каждый элемент строки.

- открывающий тег контейнера, хранящего абзац.

- закрывающий тег.

Между символами > и < расположен текст Этот текст можно редактировать. Это - надпись вне тегов (между ними), а значит она будет видна открывшему страницу пользователю. Браузер воспринимает её как простой текст, который надо вывести на экран.

contenteditable =”true ” - это и есть атрибут и его значение. Помните, как в школе: x=3. Так и здесь: contenteditable =”true ”. Атрибут contenteditable задаёт, сможет ли пользователь редактировать содержимое элемента, значение true , написанное в кавычках через знак равно, редактирование разрешает:

Атрибут=”значение” contenteditable=”true”

Последнее обновление: 1.11.2015

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

Атрибуты и свойства элементов

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

Атрибуты - это элементы разметки элементов, такие как id, style, class и ряд других. Свойства же представляют элементы объектов javascript.

Несмотря на такое различие, между свойствами и атрибутами имеет сопоставление. Так, атрибут id будет соответствовать свойству id. Например, у нас есть ссылка:

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

Изменение свойств

Для работы со свойствами в jQuery имеется метод prop() . Чтобы получить значения свойства, нам надо передать в этот метод имя свойства. Например, так мы можем получить все адреса ссылок на странице:

$("a").each(function(index,elem){ console.log($(elem).prop("href")); });

Чтобы изменить значение свойства, надо просто передать в качестве второго параметра новое значение:

$("a").first().prop("href","33.html");

Удаление свойств

Для удаления свойств мы можем использовать метод removeProp("имя_свойства") :

$("a").first().removeProp("href");

После этого свойству будет присвоено новое значение: undefined , которое будет указывать, свойство не определено.

Работа с атрибутами

Работа с атрибутами во многом похожа на работу со свойствами. Так, чтобы получить значение атрибута элемента, нам надо использовать метод attr("имя_атрибута") :

$("a").each(function(index,elem){ console.log($(elem).attr("href")); });

Действие данного метода аналогично тому, что приводилось для метода prop: вывод на консоль всех адресов ссылок.

А передавая в качестве второго параметра в метод attr некоторое значение, можно установить новое значение атрибута:

$("a").first().attr("href","33.html");

И также для удаления значений атрибутов мы модем использовать метод removeAttr("имя_атрибута") :

$("a").first().removeAttr("href");

Обратите внимание, если в случае с удалением свойства через метод removeProp соответствующий свойству атрибут оставался, только ему присваивалось значение свойства, то есть undefined, то при удалении атрибута через removeAttr атрибут удаляется из разметки элемента.

Пользовательские атрибуты html5

В HTML5 была введена такая функциональность, как пользовательские атрибуты. Их суть в том, что мы можем применить к элементу дополнительные атрибуты, которые будут хранить некоторое дополнительное значение. Подобные атрибуты начинаются с префикса data- , после которого идет собственно название атрибута и его значение. Например, в следующем примере я добавляю атрибут data-year, который будет хранить год:

  • Java
  • C/C++

Для работы с подобными атрибутами используется метод data . Он имеет следующие варианты использования:

    data("имя атрибута") : получает значение атрибута первого элемента набора. В качестве параметра передается имя атрибута без префикса data-

    Так, мы можем получить значение атрибута из предыдущего примера следующим образом:

    Console.log($("ul").data("year"));

    data() : возвращает объект javascript, который содержит набор атрибутов и их значений в виде пар ключ-значение.

    Например, пусть у нас будет элемент с двумя атрибутами:

      Тогда метод data() вернул бы объект {description:"lang", year:"2010"} . И чтобы получить значение отдельного атрибута, можно написать так:

      Console.log($("ul").data().year);

      data("атрибут", "новое значение") : устанавливает в качестве значения атрибута строку, переданную в качестве второго параметра:

      $("ul").first().data("year", "2012");

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

      $("ul").first().data("lang", { rate: "tiobe", year: 2012 });

    Если же мы захотим удалить атрибут, то для этого нужно применить метод removeData("название_атрибута") .