首页 文章

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

提问于
浏览
9

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

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

要素 1。

在此输入图像描述

要素 2。

在此输入图像描述

有问题。

当我element s .children时,他们显然会返回一些HtmlCollection s

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

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

元素 1 儿童和长度:

在此输入图像描述

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

在此输入图像描述

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

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

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

1 回答

  • 22

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

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

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

    工具提示说“记录时左边的对象值被破坏了,刚刚评估了下面的值。”

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

相关问题