Я учу filter, почему не работает код?
let elems = document.querySelectorAll('.item')
let c = elems.filter(function(currentValue, index){
return currentValue.hasAttribute('class')
});
alert(c)
<div class="item red"></div>
<div class="item green"></div>
<div class="item red"></div>
<div class="item blue"></div>
<div class="item red"></div>
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
.querySelectorAll возвращает не массив, а коллекцию. Поэтому у него просто нет этого метода.
Для того, чтобы он появился, нужно получить массив на основе этой коллекции, например используя метод Array.from
let elems = Array.from(document.querySelectorAll('.item'));
let c = elems.filter(function(currentValue, index){
return currentValue.hasAttribute('class');
});
console.log(c);
<div class="item red"></div>
<div class="item green"></div>
<div class="item red"></div>
<div class="item blue"></div>
<div class="item red"></div>