Javascript 数组在0处有一个元素,但当放入console.log时未定义
我正在运行以下脚本:Javascript 数组在0处有一个元素,但当放入console.log时未定义,javascript,dom,Javascript,Dom,我正在运行以下脚本: const myVar = document.getElementsByClassName('pricing-custom-header-links'); console.log(myVar); console.log(myVar[0]); 我得到了输出: ---------------------------------------- HTMLCollection [] 0: li.headerLink.vdm.keep.pricing-custom-heade
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
-----------------------------------------
这似乎毫无意义。第一个日志告诉我,我们有一个类似于数组的对象,它具有我想要定位的正确元素。伟大的然后,当我试图显式地访问该元素时,它告诉我它是未定义的,并且那里没有元素。发生这种情况的原因是什么?在我看来,类名拼写错误。如果查看第一个输出,可以看到数字“0”,这表明元素不存在或类名拼写不正确。请仔细检查是否正确。似乎建议使用HTMLCollection.item()访问节点。此外,如果索引超出范围,它将返回null而不是undefined,因此您可以更轻松地找到问题。Java不使用
const
。您使用的是JavaScript而不是Java吗?它们是非常不同的语言,我想你知道用哪种语言编程。我使用的是JavaScript。在@Lone_Coder编辑该问题之前,它一直在这个问题的标签中,您使用的是java而不是javascript标签。这是因为它(myVar
)是一个HTML集合,看起来类似于数组,但不是数组,所以要使它成为数组,请使用扩展运算符,如const arr=[…myVar]
,然后作为arr[0]登录
执行console.log(myVar.item(0))时仍然返回null代码>是否有可能您在类名中输入了一个错误?检查HTMLCollection.length以确保未获得空数组。