JS об'єкт Attr
Вступ до об'єкта Attr
Об'єкт Attr
у JavaScript є основним способом представлення атрибутів елемента у DOM (Document Object Model). Кожен атрибут елемента, такий як "class", "id" або "href", може бути представлений об'єктом Attr
. Цей об'єкт надає зручний інтерфейс для отримання та зміни значень атрибутів.
Отримання за допомогою методу getAttributeNode
Якщо у вас вже є посилання на елемент DOM, ви можете використовувати метод getAttributeNode
, щоб отримати об'єкт Attr
для конкретного атрибута.
var element = document.getElementById("example");
var attr = element.getAttributeNode("id");
console.log(attr.value); // виведе "example"
У цьому прикладі ми шукаємо елемент з ідентифікатором "example" і отримуємо його атрибут "id" як об'єкт Attr
. Це надає нам можливість працювати з атрибутом на більш детальному рівні.
Властивість attributes
Властивість attributes
елемента DOM повертає живий об'єкт NamedNodeMap
, що містить об'єкти Attr
для кожного атрибута.
var element = document.getElementById("example");
var attr = element.attributes.getNamedItem("id");
console.log(attr.value); // виведе "example"
У цьому прикладі ми знову отримуємо атрибут "id", але цього разу використовуємо властивість attributes
.
Модифікація атрибутів за допомогою Attr
Об'єкт Attr
дозволяє не тільки читати, але й змінювати значення атрибута. Це може бути корисно, наприклад, при динамічній зміні стилів або інтерактивних елементів на веб-сторінці.
var element = document.getElementById("example");
var attr = element.getAttributeNode("class");
attr.value = "newClass";
console.log(element.className); // виведе "newClass"
У цьому прикладі ми змінюємо значення атрибута "class" елемента на "newClass" за допомогою об'єкта Attr
.
Порада: | Завжди працюйте з атрибутами як з рядками. Незалежно від того, яке значення ви встановлюєте або отримуєте з атрибута, воно завжди буде представлено у вигляді рядка. Навіть якщо атрибут має числове значення, вам може знадобитися перетворити його у число перед використанням.
|
Порада: | Використовуйте
|
Порада: | Зміна значень атрибутів може мати неочікувані наслідки для відображення або поведінки вашого веб-сайту, особливо якщо ці атрибути взаємодіють з CSS чи JavaScript. Завжди тестуйте свої зміни, щоб переконатися, що все працює правильно. |
Нотатка: | Іноді може бути корисно використовувати атрибути для взаємодії з CSS стилями, зокрема при використанні CSS селекторів атрибутів.
Тепер у вашому CSS може бути правило, яке визначає стилі для меню на основі значення атрибута
Використовуючи JavaScript, ви можете легко змінювати значення атрибуту, щоб динамічно керувати відображенням меню. |
Нотатка: | В сучасному програмуванні на JavaScript зазвичай не використовують |
Синтаксис
Синтаксис ще не доданоПереглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
8 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Використовуючи data-*
атрибути, можна додавати користувацькі дані до елементів, які не впливають на відображення чи поведінку, але можуть бути корисними для додаткового зберігання інформації або метаданих.
Тут ми зберігаємо ID користувача безпосередньо у елементі для подальшої обробки, наприклад, при кліці на елемент.
var element = document.createElement("div");
element.setAttribute("data-user-id", "12345");
У веб-дизайні доступність важлива для створення сайтів, які можуть взаємодіяти з користувацькими засобами для людей з обмеженими можливостями. За допомогою об'єкта Attr
можна додавати або змінювати такі атрибути, як aria-*
.
У цьому прикладі ми встановлюємо атрибут aria-label
для кнопки, щоб забезпечити додатковий текст опису для користувачів.
var button = document.createElement("button");
button.setAttribute("aria-label", "Close");
Якщо ви хочете змінити значення атрибута елемента, ви можете використовувати Attr
для цього.
let attr = element.attributes.getNamedItem('data-custom-attr');
if (attr) {
attr.value = 'нове значення';
}
Якщо ви хочете перевірити, чи має елемент певний атрибут, ви можете використовувати об'єкт Attr
.
let attr = element.attributes.getNamedItem('data-custom-attr');
if (attr) {
console.log('Елемент має атрибут data-custom-attr.');
}
Якщо потрібно видалити певний атрибут із елемента, можна використовувати Attr
.
element.attributes.removeNamedItem('data-custom-attr');
Методи
getNamedItem()
- Отримує вказане значення атрибута.
item()
- Повертає елемент Attr за вказаним індексом.
removeNamedItem()
- Ця властивість видаляє атрибут за його іменем з об'єкта Attr.
setNamedItem()
- Встановлює атрибут у вказаний об'єкт Attr у колекції.