JS метод Element.setAttribute()


Загальний опис

Element.setAttribute() - це метод в JavaScript, який дозволяє встановлювати значення атрибутів HTML-елемента. Він приймає два аргументи: назву атрибута та його нове значення. Цей метод є особливо корисним для динамічного маніпулювання атрибутами елементів, що дозволяє змінювати їхню поведінку, зовнішній вигляд або функціональність без необхідності змінювати вихідний HTML-код.

Найпростіший спосіб використати setAttribute() - це викликати його для потрібного елемента та передати назву атрибута та його нове значення як аргументи:

const element = document.getElementById('myElement');
element.setAttribute('class', 'new-class');

У цьому прикладі ми встановлюємо значення атрибута class елемента з ідентифікатором myElement на new-class.

Метод setAttribute() може бути використаний для встановлення будь-якого атрибута HTML-елемента, включаючи стандартні атрибути, такі як id, class, src, href, disabled, value тощо, а також користувацькі атрибути, що розпочинаються з префікса data-.

Наприклад, ви можете динамічно змінювати посилання на зображення за допомогою атрибута src:

const image = document.getElementById('myImage');
image.setAttribute('src', 'new-image.jpg');

Або ви можете встановлювати значення користувацького атрибута data-* для зберігання додаткових даних про елемент:

const element = document.getElementById('myElement');
element.setAttribute('data-id', '123');

Метод setAttribute() також може бути корисним для динамічного додавання або видалення атрибутів елементів на основі певних умов. Наприклад, ви можете встановлювати атрибут disabled для кнопки, щоб зробити її неактивною:

const button = document.getElementById('myButton');
if (someCondition) {
  button.setAttribute('disabled', 'disabled');
} else {
  button.removeAttribute('disabled');
}

Крім того, setAttribute() часто використовується у поєднанні з іншими методами та властивостями JavaScript для реалізації складнішої функціональності. Наприклад, ви можете використовувати його для маніпулювання стилями елементів:

const element = document.getElementById('myElement');
element.setAttribute('style', 'color: red; font-weight: bold;');

Загалом, Element.setAttribute() є потужним інструментом для динамічного управління атрибутами HTML-елементів на веб-сторінках. Він дозволяє змінювати поведінку, зовнішній вигляд або функціональність елементів без необхідності змінювати вихідний HTML-код, що робить його незамінним для створення інтерактивних та адаптивних веб-додатків.

автор: Bond

Порада

Застосовуйте setAttribute() для маніпулювання стилями елементів, встановлюючи значення властивості style. Це дозволяє динамічно змінювати стилі елементів без необхідності додавати або видаляти класи CSS:

const element = document.getElementById('myElement');
element.setAttribute('style', 'color: red; font-weight: bold;'); // Змінює стилі елемента
автор: Bond
Порада

Застосовуйте setAttribute() для встановлення користувацьких атрибутів data-* на елементах. Це дозволяє зберігати додаткові дані про елемент, які можна використовувати пізніше в JavaScript. Наприклад:

const element = document.getElementById('myElement');
element.setAttribute('data-id', '123'); // Зберігає ідентифікатор елемента
автор: Bond
Порада

Використовуйте setAttribute() у поєднанні з умовними конструкціями для динамічного додавання або видалення атрибутів елементів залежно від певних умов. Наприклад, ви можете встановлювати атрибут disabled для кнопки, щоб зробити її неактивною:

const button = document.getElementById('myButton');
if (someCondition) {
  button.setAttribute('disabled', 'disabled'); // Робить кнопку неактивною
} else {
  button.removeAttribute('disabled'); // Робить кнопку активною
}
автор: Bond

Синтаксис

setAttribute(name, value)

Параметри

name

Рядок, що вказує назву атрибута.

автор: Bond

value

Рядок, що містить значення для атрибута.

автор: Bond

Повернення

none

Повертає undefined.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 8 12 5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використовуємо метод setAttribute() для динамічної зміни атрибутів HTML-елемента. Це може бути корисно для оновлення стилів, класів або властивостей елементів під час виконання JavaScript-коду.

HTML

<img id="myImage" src="/img/logo.svg" width="100" alt="Демонстраційне зображення">

JS

const image = document.getElementById('myImage');

// Встановлюємо нове значення для атрибута src
image.setAttribute('src', 'new-image.jpg');

// Встановлюємо нове значення для атрибута alt
image.setAttribute('alt', 'Нове зображення');
автор: Bond

У цьому складнішому прикладі ми створюємо функцію, яка динамічно оновлює атрибути посилання на основі введених користувачем даних. Це може бути корисно для створення інтерактивних веб-форм або для генерування динамічних посилань.

HTML

<a id="linkInput" href="#demo">Посилання для прикладу</a>
<input type="text" id="urlInput" value="текст для прикладу" placeholder="Введи щось">
<a id="myLink" href="#demo">Посилання для прикладу</a>

JS

const linkInput = document.getElementById('linkInput');
const urlInput = document.getElementById('urlInput');
const link = document.getElementById('myLink');

const updateLink = () => {
  const linkText = linkInput.value;
  const url = urlInput.value;

  // Оновлюємо текст посилання
  link.textContent = linkText;

  // Оновлюємо атрибут href посилання
  link.setAttribute('href', url);
};

linkInput.addEventListener('input', updateLink);
urlInput.addEventListener('input', updateLink);
автор: Bond

У цьому прикладі ми маємо зображення та два поля введення для URL зображення та альтернативного тексту. Користувач може ввести нові значення в ці поля та натиснути кнопку "Оновити зображення".

При натисканні на кнопку, JavaScript-код отримує нові значення з полів введення та застосовує їх до зображення за допомогою методу setAttribute(). Атрибут src зображення оновлюється на нове значення URL, а атрибут alt - на новий альтернативний текст.

Таким чином, користувач може динамічно змінювати зображення та його атрибути без необхідності оновлювати сторінку.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід