Как исправить Cannot set property 'background' of undefined?

Если я пишу
document.querySelector('.day').style.background = 'yellow'
, все работает, а когда я пишу
document.querySelectorAll('.day').style.background = 'yellow'
выдает ошибку:
Cannot set property 'background' of undefined
  • Вопрос задан
  • 234 просмотра
Решения вопроса 2
Fragster
@Fragster
помогло? отметь решением!
document.querySelector('.day') возвращает первый подходящий элемент. У него есть свойство style.
document.querySelectorAll('.day') возвращает список элементов (NodeList), у него нет свойства style. Надо обойти список и проставить стиль каждому.
Желание уйти от jquery похвально.
Ответ написан
@dero
о себе
Нужно циколом пройти все элементы.

document.querySelectorAll('.day').forEach(function(elem){
     elem.style.background = 'yellow'
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
querySelectorAll возвращает не один элемент, а NodeList.
У NodeList'а нет свойства .style, поэтому возвращается значение undefined.
Ну и, соответственно, у undefined нет свойства background, о чём и говорится в ошибке.
Ответ написан
@igotDiamonds
querySelectorAll - возвращает коллекцию элементов NodeList, соответственно
[NodeList].style == undefined
NodeList[0] == element
Ответ написан
Ваш ответ на вопрос

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

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