HTMLCollection长度与记录的对象不匹配

时间:2015-06-04 15:52:19

标签: javascript

// Find all posts
var posts = node.getElementsByClassName("userContentWrapper");
var post, text;
console.log(posts);
console.log(typeof(posts));
console.log(Object.keys(posts));
console.log(posts.length);

以上输出: enter image description here

:(我不明白。为什么长度为0?它适用于小提琴:http://jsfiddle.net/p7yfv37s/

我还在长度后再次打印了对象,它仍显示长度:4。enter image description here

1 个答案:

答案 0 :(得分:1)

如果您将光标放在 i 图标上,您会看到仅在首次展开时才捕获HtmlCollection状态。它在console.log调用时不显示其状态。

enter image description here

很可能在加载DOM之前执行日志记录,或者通过javascript动态填充nodeHTMLCollection是一种 live 集合,可跟踪所有DOM更改(more info about difference between HTMLCollection and NodeList

参见简单示例:http://jsfiddle.net/p7yfv37s/1/