在我的 javascript 中,我有两个元素。
我记录了两个元素,它显示了......
要素 1。
要素 2。
有问题。
当我element
s .children
时,他们显然会返回一些HtmlCollection
s
您将在一分钟内理解以下内容:但奇怪的是,一个 HtmlCollection 为空(并且长度为 0),但有 3 个元素(并且长度为 3)。
如果您为元素的孩子阅读下面的console.log
s,您将理解我在说什么...
元素 1 儿童和长度:
元素 2 儿童和长度:(搞砸了)
有谁知道这里发生了什么?
我如何解决这个问题,我需要通过 HtmlCollection 循环,但它不会让我因为长度是 0 ...?
提前致谢!所有帮助赞赏。
1 回答
将对象记录到控制台时,对象的当前状态不会被快照并显示(如您所料);相反,控制台获得对象的实时引用。当您在控制台中展开它时,您在展开它时会看到的内容,而不是在您登录时的内容。更多关于这个问题及其答案的内容。
显然,当您进行日志记录时,您的集合是空的,然后在以后获取它们的元素。您只想让代码等到填充集合。例如,如果您在运行脚本时立即执行此操作,请考虑将脚本放在文档的末尾,就在结束
</body>
标记之前。对象旁边的非常微妙的蓝色(i)图标有一个有用的工具提示;如果你将它悬停,你会看到:
它说“左边的物体值在记录时被破坏了,刚刚评估了下面的值。”