首先,我没有键盘,只需通过jsconsole应用检查我的手机即可。其次,我得到了一个像这样的简单代码段:
const foo = document.getElementsByClassName('bar');
foo instanceof HTMLCollection // true
foo[0] instanceof HTMLElement // false
我只是想知道为什么foo [0]在元素不存在时返回false。是由未定义元素引起的吗?还是什么?有没有提到这个?请给我一些报价,谢谢!
答案 0 :(得分:0)
getElementsByClassName
将返回一个NodeList,它是一个HTMLCollection。因此,如果没有给定类的元素,您仍将获得一个空的节点列表。
但是,当您尝试访问oth元素时,由于该元素为空列表,您将得到undefined
( kaiido 的正确建议)。因此,您得到false
。
以下是示例表示形式:
var test = document.getElementsByClassName('test');
console.log(Object.prototype.toString.call(test))
console.log(Object.prototype.toString.call(test[0]))
答案 1 :(得分:0)
也许您的问题是“ HTMLCollection” /“ HTMLElement”无关紧要。
const arr = []
arr // []
arr[0] // undefined
arr[0] instanceof HTMLElement // false