首页 > 解决方案 > 数组在 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
-----------------------------------------

这似乎没有任何意义。第一个日志告诉我,我们有一个类似数组的对象,其中包含我想要定位的正确元素。伟大的。然后,当我尝试显式访问该元素时,它告诉我它是未定义的并且那里没有元素。为什么会发生这种情况?

标签: javascriptdom

解决方案


Mozilla Docs似乎推荐 HTMLCollection.item() 来访问节点。此外,如果索引超出范围,它将返回 null 而不是 undefined,因此您可以更轻松地找到问题。


推荐阅读