JS метод Element.hasAttribute()


На даний момент опис відсутній.

Порада

Використовуйте hasAttribute() для перевірки стану елемента або його властивостей. Наприклад, ви можете перевірити, чи елемент має атрибут disabled або readonly, перш ніж дозволити користувачеві взаємодіяти з ним.

автор: Bond
Порада

Метод hasAttribute() може бути корисним для валідації даних форми перед відправленням. Наприклад, ви можете перевірити, чи всі обов'язкові поля форми мають атрибут required, щоб забезпечити, що користувач заповнив їх.

const formFields = document.querySelectorAll('input, textarea, select');
formFields.forEach(field => {
  if (field.hasAttribute('required') && !field.value) {
    // Показати повідомлення про помилку
  }
});
автор: Bond
Порада

Комбінуйте hasAttribute() з іншими методами роботи з атрибутами, такими як getAttribute() та setAttribute(), для створення більш складних функцій управління атрибутами елементів. Наприклад, ви можете створити функцію, яка видаляє атрибут, якщо він присутній, або встановлює його, якщо він відсутній.

function toggleAttribute(element, attribute, value) {
  if (element.hasAttribute(attribute)) {
    element.removeAttribute(attribute);
  } else {
    element.setAttribute(attribute, value);
  }
}
автор: Bond

Синтаксис

hasAttribute(name)

Параметри

name

Рядок, що представляє ім'я атрибута, наявність якого потрібно перевірити в елементі.

автор: Bond

Повернення

boolean

Повертає логічне значення типу boolean. True, якщо вказаний атрибут присутній в елементі, інакше - false. Це значення можна використовувати для перевірки наявності атрибута перед виконанням певних дій або для прийняття рішень на основі стану елемента.

автор: Bond

Переглядачі

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

Приклади

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

У цьому прикладі ми використовуємо метод hasAttribute() для перевірки наявності атрибута data-product у елементів списку продуктів. Якщо атрибут є, ми отримуємо його значення і виводимо у модальному вікні. Це демонструє, як можна використовувати hasAttribute() для перевірки наявності певного атрибута перед виконанням додаткових дій.

<ul>
  <li data-product="Футболка">Футболка</li>
  <li data-product="Штани">Штани</li>
  <li>Шапка</li>
</ul>
<div id="modal" style="display: none;">
  <span id="modalText"></span>
</div>

<script>
const items = document.querySelectorAll('li');

items.forEach(item => {
  item.addEventListener('click', () => {
    if (item.hasAttribute('data-product')) { // Перевірка наявності атрибута
      const productName = item.getAttribute('data-product');
      const modal = document.getElementById('modal');
      const modalText = document.getElementById('modalText');
      modalText.textContent = `Ви обрали: ${productName}`;
      modal.style.display = 'block';
    }
  });
});
</script>
автор: Bond

У цьому прикладі ми використовуємо метод hasAttribute() для валідації форми реєстрації користувача. Ми перевіряємо наявність обов'язкових атрибутів required у полів форми перед відправленням даних. Також ми використовуємо hasAttribute('pattern') для перевірки, чи поле електронної пошти відповідає певному шаблону. Цей приклад демонструє, як hasAttribute() може бути використаний для перевірки атрибутів та валідації форм.

<form id="registerForm">
  <label>
    Ім'я:
    <input type="text" name="name" required>
  </label>
  <label>
    Email:
    <input type="email" name="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">
  </label>
  <label>
    Пароль:
    <input type="password" name="password" required minlength="8">
  </label>
  <button type="submit">Зареєструватись</button>
</form>
<div id="errorMessage" style="display: none; color: red;"></div>

<script>
const form = document.getElementById('registerForm');
const errorMessage = document.getElementById('errorMessage');

form.addEventListener('submit', (event) => {
  event.preventDefault(); // Зупиняємо відправлення форми за замовчуванням

  const inputs = form.querySelectorAll('input');
  let isValid = true;

  inputs.forEach(input => {
    if (input.hasAttribute('required') && input.value.trim() === '') { // Перевірка обов'язкових полів
      isValid = false;
    }

    if (input.hasAttribute('pattern')) { // Перевірка відповідності шаблону для email
      const pattern = new RegExp(input.getAttribute('pattern'));
      if (!pattern.test(input.value)) {
        isValid = false;
      }
    }
  });

  if (isValid) {
    // Відправлення форми на сервер
    form.submit();
  } else {
    errorMessage.textContent = 'Будь ласка, заповніть всі обов\'язкові поля коректно.';
    errorMessage.style.display = 'block';
  }
});
</script>
автор: Bond

У цьому прикладі ми використовуємо метод hasAttribute('data-completed') для перевірки, чи елемент списку завдань має атрибут data-completed. Якщо атрибут присутній, ми отримуємо його значення за допомогою getAttribute('data-completed') і використовуємо його для встановлення класу completed для елемента, що відображає його як виконане завдання.

Користувач може натиснути на кнопку "Переключити виконані завдання", щоб змінити стан виконання завдань. Метод toggleCompleted() перебирає всі елементи списку, перевіряє наявність атрибута data-completed, змінює клас completed та значення атрибута data-completed відповідно до поточного стану завдання. Після цього рахується кількість виконаних завдань і виводиться відповідне повідомлення.

Ця демонстрація показує, як hasAttribute() може використовуватися для перевірки наявності атрибута, а отримане значення атрибута може бути використане для зміни стану елемента та відображення користувачеві. Користувач може взаємодіяти зі списком завдань, переглядаючи та змінюючи їх стан виконання.

автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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