ES6 Синтаксис распространения обычно самый простой.В качестве альтернативы вы можете использовать Array.from()
для преобразования NodeList в массив, а затем использовать любые функции массива для фильтрации того, что вы хотите.В этом случае я использую .filter()
, захватывая только те, которые содержат какой-либо элемент с .test
:
const nodes = document.querySelectorAll('div');
const filtered = [...nodes].filter(el => el.querySelector('.test') !== null);
console.log('All nodes:', [...nodes]);
console.log('Filtered:', filtered);
console.log('Filtered (outerHTML):', filtered.map(el => el.outerHTML));
<div><span class="test" /></div>
<div><span class="rawr" /></div>