Свойства узлов
Свойства и атрибуты
Во время построения DOM-дерева, некоторые стандартные HTML-атрибуты становятся свойствами элементов. Посмотрим на несколько часто использующихся свойств.
value- содержит текущий текстовый контент элементов форм.checked- хранит состояние чекбокса или радиокнопки.name- хранит значение, указанное в HTML-атрибуте name.src- путь к изображению тега<img>.
Свойство textContent
textContentelem.textContent возвращает текстовый контент внутри элемента. Доступно для чтения и записи. Не зависимо что будет передано в textContent, данные всегда будут записаны как текст.
Свойство classList
classListВ свойстве classList хранится объект с методами для работы с классами элемента.
elem.classList.contains(cls)- возвращаетtrueилиfalseв зависимости от того, есть ли у элемента классcls.elem.classList.add(cls)- добавляет классclsв список классов элемента.elem.classList.remove(cls)- удаляет классclsиз списка классов элемента.elem.classList.toggle(cls)- если классаclsнет, то добавляет его, если есть, наоборот удаляет.elem.classList.replace(oldClass, newClass)- заменяет существующий классoldClassна указанныйnewClass.
Свойство style
styleИспользуется для чтения и изменения инлайновых стилей. Возвращает объект CSSStyleDeclaration, который содержит список всех свойств, определенных только во встроенных стилях элемента, а не весь CSS. При записи свойства записываются в camelCase, то есть background-color превращается в element.style.backgroundColor и т. д.
const button = document.querySelector(".btn");
button.style.backgroundColor = "teal";
button.style.fontSize = "24px";
button.style.textAlign = "center";
console.log(button.style); // inline styles objectНа практике стилизация элементов выполняется добавленим CSS-классов. Свойство style используется для добавления каких-то динамических стилей, например во время анимации.
Атрибуты
DOM-элементам соответствуют HTML-теги у которых есть текстовые атрибуты. Доступ к атрибутам осуществляется при помощи стандартных методов. Эти методы работают со значением, которое находится в HTML.
elem.hasAttribute(name)- проверяет наличие аттрибута, возвращаетtrueилиfalse.elem.getAttribute(name)- получает значение атрибута и возвращает его.elem.setAttribute(name, value)- устанавливает атрибут.elem.removeAttribute(name)- удаляет атрибут.elem.attributes- свойство, возвращает объект всех атрибутов элемента.
data-атрибуты
Позволяют добавить тегу произвольный атрибут и получить его значение в JavaScript. Эту возможность используют для того, чтобы упростить написание кода, например связать данные и разметку по уникальному идентификатору, указать тип действия кнопки и т. п.
<button type="button" data-action="save">Save</button>
<button type="button" data-action="close">Close</button>Для получения значения data-атрибута используется свойство dataset, после которого идет имя атрибута. То есть data- отбрасывается, а остальное имя записывается как имя свойства объекта.
const saveBtn = document.querySelector('button[data-action="save"]');
console.log(saveBtn.dataset.action); // "save"
const closeBtn = document.querySelector('button[data-action="close"]');
console.log(closeBtn.dataset.action); // "close"Last updated