@lookingfor2

Почему не добавляется атрибут и его значение?

нахожу форму:
let select = document.getElementById('select-form');

нахожу элемент с классом в форме:
let option = select.getElementsByClassName('label');

пытаюсь присвоить атрибут:
option.setAttribute('class', 'vydelit');
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 4
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Потому что в переменной option у вас не 1 конкретный option, а массив этих объектов. Вы можете сделать так:
option.forEach((o) => o.setAttribute('class', 'vydelit'));

Так же, вы можете сделать:
let select = document.getElementById('select-form');
let option = select.querySelector('.label');
option.setAttribute('class', 'vydelit');

Но тогда класс будет добавлен только первому элементу с указанным классом.
Ответ написан
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
let option = select.getElementsByClassName('label')[0];

Он находит тебе массив с элементами.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что getElementsByClassName возвращает не один элемент, а коллекцию.
Ну и для работы с классами есть свойство classList.
Ответ написан
Комментировать
@StockholmSyndrome
потому что getElementsByClassName возвращает коллекцию элементов
let option = select.getElementsByClassName('label')[0];
или
let option = select.querySelector('.label');
Ответ написан
Ваш ответ на вопрос

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

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