JS метод Element.hasAttribute()
Порада: | Метод
|
Порада: | Використовуйте |
Порада: | Комбінуйте
|
Синтаксис
hasAttribute(name)
Параметри
- *
name
Рядок, що представляє ім'я атрибута, наявність якого потрібно перевірити в елементі.
Return
boolean
Повертає логічне значення типу
boolean
.True
, якщо вказаний атрибут присутній в елементі, інакше -false
. Це значення можна використовувати для перевірки наявності атрибута перед виконанням певних дій або для прийняття рішень на основі стану елемента.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
Переглядач | ||||
---|---|---|---|---|
Переглядач | ||
---|---|---|
Приклади
У цьому прикладі ми використовуємо метод hasAttribute('data-completed')
для перевірки, чи елемент списку завдань має атрибут data-completed
. Якщо атрибут присутній, ми отримуємо його значення за допомогою getAttribute('data-completed')
і використовуємо його для встановлення класу completed
для елемента, що відображає його як виконане завдання.
Користувач може натиснути на кнопку "Переключити виконані завдання", щоб змінити стан виконання завдань. Метод toggleCompleted()
перебирає всі елементи списку, перевіряє наявність атрибута data-completed
, змінює клас completed
та значення атрибута data-completed
відповідно до поточного стану завдання. Після цього рахується кількість виконаних завдань і виводиться відповідне повідомлення.
Ця демонстрація показує, як hasAttribute()
може використовуватися для перевірки наявності атрибута, а отримане значення атрибута може бути використане для зміни стану елемента та відображення користувачеві. Користувач може взаємодіяти зі списком завдань, переглядаючи та змінюючи їх стан виконання.
У цьому прикладі ми використовуємо метод 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>
У цьому прикладі ми використовуємо метод 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>