let arr = document.getElementsByClassName('highlight'),打印arr有值,但无法遍历出arr里面的每一项
时间: 2024-10-27 20:06:35 浏览: 9
实例分析Array.from(arr)与[...arr]到底有何不同
当你使用`getElementsByClassName('highlight')`这个JavaScript表达式获取HTML元素时,它返回的是一个NodeList对象,而不是一个数组。NodeList类似于数组,但它不是一个真正的数组,没有数组的一些内置方法如forEach、map等可以直接遍历。
虽然`arr`看起来像一个数组并且可以存储多个匹配类名的元素,但它的索引不是连续的,且没有length属性。如果你想遍历这些元素,你可以使用传统的for循环结合索引来访问它们:
```javascript
let arr = document.getElementsByClassName('highlight');
for(let i = 0; i < arr.length; i++) {
console.log(arr[i]); // 打印每个高亮元素
}
```
如果你需要数组的行为,可以考虑将NodeList转换为真正的数组,比如使用`Array.from()`:
```javascript
let arr = Array.from(document.getElementsByClassName('highlight'));
// 然后就可以使用数组的方法进行遍历了
arr.forEach(element => {
console.log(element);
});
```
阅读全文