我不明白为什么我无法从HtmlCollection中获取元素。下面是代码示例:
var col = (document.getElementsByClassName("jcrop-holder"));
console.log(col);
在控制台上产生以下输出:
我试图获取dic.jcrop-holder对象,但是我无法从我的变量col中获取它。下面的任何一种方法都不起作用:
console.log(col[0]); // undefined
console.log(col.item(0)); // null
// check length of collection
console.log(col.length); // 0
如果长度为0,为什么控制台显示长度为1,并且还显示对象里面的内容?当我打开节点时,发现它包含了子元素。这是怎么回事?
以下是一些展开的节点。我没有展开div.jcrop.holder,因为它太长了。以下是子元素:
document.getElementsByClassName("jcrop-holder")[0]
和document.querySelector(".jcrop-holder")
。 - Tusharconsole.log
的部分和你尝试使用它的部分)。看起来你在控制台登录和尝试使用它之间改变了那个类。 - BuzinasgetElementsByClassName
返回一个_实时集合_。控制台中的小蓝色“i”表示当您展开数组时它将被评估。在检索集合并使用console.log
输出其属性之间,以及在控制台中实际检查集合之间,显然存在某些差异。 - James Thorpeconsole
是异步工作的。尝试更改col[0]
中的某些内容,尽管控制台显示它为“未定义”。 - Teemu