@lookingfor2

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

let select = document.getElementById('select-form');
нахожу форму
let option = select.getElementsByClassName('label');
нахожу элемент с классом в форме
option.setAttribute('class', 'vydelit');
пытаюсь присвоить атрибут
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 5
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
let option = select.getElementsByClassName('label')[0];

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

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

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