DOM-свойства и атрибуты
1. Свойства
Во время построения DOM-дерева многие стандартные HTML-атрибуты становятся свойствами узлов. Посмотрим на несколько часто использующихся свойств.
hidden
- контролирует видимость элемента.value
- содержит текущий текстовый контент элементов input, select, textarea.checked
- хранит состояние чекбокса или радиокнопки.name
- хранит значение, указанное в HTML-атрибуте name.src
- путь к изображению тега<img>
.
1.1. Свойство Node.textContent
elem.textContent
— свойство, содержит текстовый контент внутри элемента. Доступно для записи, при чем вне зависимости, что будет передано в textContent
, данные всегда будут записаны как текст.
1.2. Свойство HTMLElement.style
Используется для получения и установки инлайновых стилей. Возвращает объект CSSStyleDeclaration
, который содержит список всех свойств, определенных только в инлайновом стиле элемента, а не весь CSS. Свойство можно как читать, так и записывать. При записи свойства записываются в camelCase
, то есть background-color
превращается в element.style.backgroundColor
и т. д.
const button = document.querySelector('.btn');
button.style.backgroundColor = 'teal';
console.log(button.style); // объект инлайн стилей
Copy
1.3. Свойство Element.classList
Объект содержит методы для работы с классами элемента.
elem.classList.contains(cls)
- возвращаетtrue
илиfalse
в зависимости от того, есть ли у элемента классcls
elem.classList.add(cls)
- добавляет классcls
в список классов элементаelem.classList.remove(cls)
- удаляет классcls
из списка классов элементаelem.classList.replace(oldClass, newClass)
- заменяет существующий класс на указанныйelem.classList.toggle(cls)
- если классаcls
нет - добавляет его, если есть- удаляет
2. Атрибуты
DOM-элементам соответствуют HTML-теги у которых есть текстовые атрибуты. Доступ к атрибутам осуществляется при помощи стандартных методов. Эти методы работают со значением, которое находится в HTML.
elem.hasAttribute(name)
- проверяет наличие аттрибута, возвращаетtrue
илиfalse
elem.getAttribute(name)
- получает значение атрибута и возвращает егоelem.setAttribute(name, value)
- устанавливает атрибутelem.removeAttribute(name)
- удаляет атрибутelem.attributes
- свойство, возвращает коллекцию всех атрибутов элемента
2.1. HTML5 data-атрибуты
В HTML5 можно создавать произвольный атрибут и получать значения этого атрибута в JavaScript. Эту возможность используют для того, чтобы упростить написание кода, например связать данные и разметку по уникальному идентификатору, указать тип действия кнопки и т. п.
Last updated