Vla*_*996 4 javascript arrays methods class typeerror
我对 JavaScript 中的 array.some() 方法有疑问。我有一个 html 代码:
<div class="list">
<div class="item"></div>
<div class="item"></div>
<div class="item selected"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我试图找到包含类名“selected”的数组元素。
const items = document.querySelectorAll('.item');
items.some(item => {
if (item.classList.contains('selected')) { console.log(true); }
else { console.log(false); }
});
Run Code Online (Sandbox Code Playgroud)
但我得到的只是这个错误:“Uncaught TypeError: items.some is not a function” 有人可以告诉我,为什么 Array.some() 方法不适用于 div 数组?谢谢
发生这种情况是因为.some()是一个数组方法,但items这里不是一个数组,而是一个节点集合,更广为人知的名称是NodeList。因此,我们首先需要将其转换为数组,如下所示:
const items = [...document.querySelectorAll('.item')];
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:
演示:
const items = [...document.querySelectorAll('.item')];
Run Code Online (Sandbox Code Playgroud)
const items = [...document.querySelectorAll('.item')];
items.some(item => {
if (item.classList.contains('selected')) {
console.log(true, item);
} else {
console.log(false, item);
}
});Run Code Online (Sandbox Code Playgroud)