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

Dav*_*nan 11 html javascript htmlcollection

在我的javascript中,我有两个元素.

我记录了两个元素,它显示了......

要素1.

在此输入图像描述

要素2.

在此输入图像描述

有问题.

当我console.logelement小号.children他们显然还有些HtmlCollection小号

您将在一分钟内理解以下内容:但奇怪的是,一个HtmlCollection为空(并且长度为0),但有3个元素(并且长度为3).

如果您console.log为元素的孩子阅读下面的s,您将理解我在说什么...

元素1儿童和长度:

在此输入图像描述

元素2儿童和长度:(搞砸了)

在此输入图像描述

有谁知道这里发生了什么?

我如何解决这个问题,我需要通过HtmlCollection循环,但它不会让我因为长度是0 ...?

提前致谢!所有帮助赞赏.

T.J*_*der 26

将对象记录到控制台时,对象的当前状态不会被快照并显示(如您所料); 相反,控制台获取对象的实时引用.在控制台中展开它时,您会看到它在展开时的内容,而不是在您登录时的内容.更多关于这个问题及其答案的内容.

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

非常微妙的蓝色(我)旁边的对象图标有一个工具提示,是非常有用的; 如果你将它悬停,你会看到:

工具提示说

它说"左边的物体值在记录时被破坏了,刚刚评估了下面的值."