Как выбрать все элементы контейнера и прилепить им класс?
У меня есть контейнер, который выполняет функцию body. Как прилепить абсолютно всем элементам внутри этого контейнера класс?
У меня есть попытка написать скрипт, но выдает ошибки, не могу понять, в чем причина
Ошибка "Uncaught TypeError: Cannot read property", ругается на строку All.classList.add('mobile'),
const container = document.querySelector('.container'),
All = document.body.querySelectorAll('*');
console.log(All);
function addClass() {
if (container.offsetWidth < 1270) {
container.classList.add('mobile'),
console.log('done');
} else if (container.classList.contains('mobile')) {
console.log('true'),
All.classList.add('mobile'),
console.log('added');
};
};
let timerId = setInterval(() => addClass(), 500);
addClass();
Ответы (2 шт):
Автор решения: DiD
→ Ссылка
const container = document.querySelector('.container'),
all = container.querySelectorAll('*');
[...all].forEach(element => element.classList.add('mobile'));
Автор решения: Johnny Rocket
→ Ссылка
querySelectorAll в отличии от querySelector возвращает не дом элемент а коллекцию(псевдомассив) дом элементов. Поэтому у нее нет метода classList. Нужно проитерировать ее и на каждый элемент повесить класс. Например:
All.forEach(node => node.classList.add('mobile')),