我有一个NodeList。我想一个接一个地检查每个节点,是否包含任何具有特定类的元素。
我知道Node.contains()方法,但是我不知道如何搜索具有特定类的任何元素。
谢谢。
答案 0 :(得分:1)
ES6 spread syntax通常是最简单的。另外,您可以使用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>
答案 1 :(得分:-1)
您可以使用此
Array.from(document.getElementsByClassName("someClass")).some(({classList}) =>classList.contains('requiredClass'))