Как перебрать массив getElementsByClassName?

Как правильно проверить, во все ли поля формы введены значения, и если какие-то пустые, поменять им рамку на красную с помощью перебора массива, возвращенного getElementsByClassName?
  • Вопрос задан
  • 6265 просмотров
Решения вопроса 3
abyrkov
@abyrkov
JavaScripter
let els = document.getElementsByClassName('...');
Array.from(els).forEach((el) => if(!el.value) el.style.border = '1px solid red');
// Или
for(let i = 0; i < els.length; ++i) if(!el.value) els[i].style.border = '1px solid red')
Ответ написан
evgeniy8705
@evgeniy8705
Повелитель вселенной
let elements = document.getElementsByClassName(`имя класса`);

for (let i = 0; i < elements.length; i += 1) {
	if (elements[i] пустой) {
		// Поменять цвет рамки
	}
}
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Array.prototype.forEach.call(document.querySelectorAll('.myClass'), el => {
  if (!el.value) {
    el.classList.add('error')
  }
})

https://jsfiddle.net/kLkdvs2f/

UPD: современные браузеры позволяют вызывать метод forEach у NodeList
document.querySelectorAll('.myClass').forEach(el => {
  if (!el.value) {
    el.classList.add('error')
  }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы