javascript - 数组在 0 处有一个元素,但放入 console.log 时未定义
问题描述
我正在运行以下脚本:
const myVar = document.getElementsByClassName('pricing-custom-header-links');
console.log(myVar);
console.log(myVar[0]);
我得到输出:
----------------------------------------
HTMLCollection []
0: li.headerLink.vdm.keep.pricing-custom-header-links
1__proto__: HTMLCollection
-----------------------------------------
undefined
-----------------------------------------
这似乎没有任何意义。第一个日志告诉我,我们有一个类似数组的对象,其中包含我想要定位的正确元素。伟大的。然后,当我尝试显式访问该元素时,它告诉我它是未定义的并且那里没有元素。为什么会发生这种情况?
解决方案
Mozilla Docs似乎推荐 HTMLCollection.item() 来访问节点。此外,如果索引超出范围,它将返回 null 而不是 undefined,因此您可以更轻松地找到问题。
推荐阅读
- java - 将 Class[] 的数组转换为 List 类型的不同类
- javascript - javascript style.display 阻止两个切换在一起
- reactjs - React hooks 状态未更新
- excel - 使用 2 张纸,如果单元格值匹配,则从另一列中引入日期值
- authentication - 如何向 JWT 令牌生命周期验证添加额外检查?
- angular - Angular 7:'找不到名称''
- android - 空对象引用上的 AlertDialog 按钮侦听器
- r - 自动识别变量之前在 R 的回归中已被分解
- c# - 控制器中的 Asp.Net Core 单元测试删除方法
- wordpress - htaccess | 阿帕奇 | 最佳实践 | WordPress 插件 | 允许覆盖