Я пытался изменить for loop
на filter()
однострочник, но я получаю эту ошибку: (index):44 Uncaught TypeError: childrenElements.filter is not a function
.
Фрагмент рабочего кода:
const parentElement = document.querySelector('.container');
let childrenElements = parentElement.children;
let results = [];
for(i = 0; i < childrenElements.length; i++){
if( childrenElements[i].classList.contains('ui-widget')){
results.push('ui-widget')
}
}
Не работает фрагмент кода:
const parentElement = document.querySelector('.container');
let childrenElements = parentElement.children;
let results = [];
results = childrenElements.filter(childrenElement => childrenElement.classList.contains('ui-widget') )
Я думаю, это потому, что он не распознает childrenElements
как array
, но я не уверен как это исправить.
Вы можете найти демо здесь .
РЕДАКТИРОВАТЬ:
Окончательный фрагмент кода принятого ответа следующий:
const parentElement = document.querySelector('.container');
let childrenElements = parentElement.children;
let results = [];
results = [...childrenElements].map(childrenElement => childrenElement.classList );
console.log(results)
if (results[0].contains('ui-widget')) {
alert('it has class')
}