element.children 的 console.log 显示长度为 0,但稍后展开时有三个条目

console.log of element.children shows 0 length but has three entries when expanded later

在我的 JavaScript 中,我有两个元素。

我已经记录了这两个元素,它显示如下:

元素 1:

元素 2:

问题是:

如果您阅读下面的 children 元素的日志,您就会明白我在说什么...

元素 1(这个按预期工作):

元素 2(有问题的那个):

有人知道这里发生了什么吗? children的人数怎么会有自相矛盾的报道?

我该如何解决这个问题?我需要遍历 children,但它不允许我这样做,因为长度显然是 0。

提前致谢! 感谢所有帮助。

当您将对象记录到控制台时,对象的当前状态不会被快照和显示(如您所料);相反,控制台会获得对该对象的 实时引用 。当您在控制台中展开它时,您会看到它的内容截至 展开时,而不是您登录时的内容。 this question and its answers.

中有更多相关信息

很明显,当您进行日志记录时,您的集合是空的,然后稍后再获取它们的元素。您只想让您的代码等到集合被填充。例如,如果您在脚本为 运行 时立即执行此操作,请考虑将脚本放在文档末尾,就在结束 </body> 标记之前。

对象旁边的非常微妙 蓝色 (i) 图标有一个有用的工具提示;如果将鼠标悬停在上面,您会看到:

它说“左边的对象值是在记录时拍摄的,下面的值是刚刚计算的。”


但总的来说:我建议 使用浏览器内置的调试器 打开灯 而不是在黑暗中拿着手电筒跌跌撞撞 and/or IDE.