gpt4 book ai didi

javascript - Array.some() 不是函数

转载 作者:行者123 更新时间:2023-11-30 23:58:56 25 4
gpt4 key购买 nike

我对 JavaScript 中的 array.some() 方法有疑问。我有一个 html 代码:

<div class="list">
<div class="item"></div>
<div class="item"></div>
<div class="item selected"></div>
</div>

我正在尝试查找包含类名“selected”的数组元素。

const items = document.querySelectorAll('.item');

items.some(item => {
if (item.classList.contains('selected')) { console.log(true); }
else { console.log(false); }
});

但我得到的只是这个错误:“Uncaught TypeError: items.some is not a function”有人可以告诉我,为什么 Array.some() 方法不适用于 div 数组?谢谢

最佳答案

发生这种情况是因为 .some()是一个数组方法,但这里的 items 不是一个数组,而是一个节点集合,更广为人知的名称是 NodeList 。因此,我们首先需要将其转换为数组,例如:

const items = [...document.querySelectorAll('.item')];

了解更多信息:

演示:

const items = [...document.querySelectorAll('.item')];

items.some(item => {
if (item.classList.contains('selected')) {
console.log(true, item);
} else {
console.log(false, item);
}
});
<div class="list">
<div class="item"></div>
<div class="item"></div>
<div class="item selected"></div>
</div>

关于javascript - Array.some() 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60872714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com