Книга: JavaScript. Подробное руководство, 6-е издание
15.4.1. HTML-атрибуты как свойства объектов Element
15.4.1. HTML-атрибуты как свойства объектов Element
Объекты HTMLElement
, представляющие элементы HTML-документа, определяют свойства, доступные для чтения/записи, соответствующие HTML-атрибутам элементов. Объект HTMLElement
определяет свойства для поддержки универсальных HTTP-атрибутов, таких как id
, title
, lang
и dir
, и даже свойства-обработчики событий, такие как onclick
. Специализированные подклассы класса Element
определяют атрибуты, характерные для представляемых ими элементов. Например, узнать URL-адрес изображения можно, обратившись к свойству src
объекта HTMLElement
, представляющего элемент <img>
:
var image = document.getElementById("myimage");
var imgurl = image.src; // Атрибут src определяет URL-адрес изображения
image.id === "myimage" // Потому что поиск элемента выполнялся по id
Аналогично можно устанавливать атрибуты элемента <form>, определяющие порядок отправки формы:
var f = document.forms[0]; // Первый элемент <form> в документе
f.action = "http://www.example.com/submit.php"; // Установить URL отправки,
f.method = "POST"; // Тип HTTP-запроса
Имена атрибутов в разметке HTML не чувствительны к регистру символов, в отличие от имен свойств в языке JavaScript. Чтобы преобразовать имя атрибута в имя свойства в языке JavaScript, его нужно записать символами в нижнем регистре. Однако, если имя атрибута состоит из более чем одного слова, первый символ каждого слова, кроме первого, записывается в верхнем регистре, например: defaultChecked
и tabIndex
.
Имена некоторых HTML-атрибутов совпадают с зарезервированными словами языка JavaScript. Имена свойств, соответствующих таким атрибутам, начинаются с приставки "html". Например, HTML-атрибуту for
(элемента <label>
) в языке JavaScript соответствует свойство с именем htmlFor
. Очень важный HTML-атрибут class
, имя которого совпадает с зарезервированным (но не используемым) в языке JavaScript словом «class», является исключением из этого правила: в программном коде на языке JavaScript ему соответствует свойство className
. Мы еще встретимся со свойством className
в главе 16.
Свойства, представляющие HTML-атрибуты, обычно имеют строковые значения. Если атрибут имеет логическое или числовое значение (например, атрибуты defaultChecked
и maxLength
элемента <input>
), значением соответствующего свойства будет логическое или числовое значение, а не строка. Значениями атрибутов обработчиков событий всегда являются объекты Function
(или null
). Спецификация HTML5 определяет несколько атрибутов (таких как атрибут form
элемента <input>
и родственных ему элементов), которые преобразуются в фактические объекты Element
. Наконец, значением свойства style
любого HTML-элемента является объект CSSStyleDeclaration
, а не строка. Поближе с этим важным свойством мы познакомимся в главе 16.
Обратите внимание, что основанный на свойствах прикладной интерфейс получения доступа к значениям атрибутов не позволяет удалять атрибуты из элементов. В частности, для этих целей нельзя использовать оператор delete
. Для этой цели можно использовать прием, который описывается в следующем разделе.
- 15.4. Атрибуты
- 15.4.4. Атрибуты как узлы типа Attr
- 6.7. Атрибуты свойств
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- Иерархия объектов в InterBase
- Имена объектов длиной 68 символов
- Создание объектов Collection
- 1.3.5. Методы и атрибуты
- 2. Домены и атрибуты
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- 4. Виртуальные атрибуты