element.children 的 console.log 显示长度为 0,但稍后展开时有三个条目
console.log of element.children shows 0 length but has three entries when expanded later
在我的 JavaScript 中,我有两个元素。
我已经记录了这两个元素,它显示如下:
元素 1:
元素 2:
问题是:
- 当我
console.log
每个元素(element.children
)的children时,它显然是returns一个元素列表。
- 但奇怪的是,一个元素是空的(长度为0),但展开后有3个元素(长度为3)
如果您阅读下面的 children 元素的日志,您就会明白我在说什么...
元素 1(这个按预期工作):
元素 2(有问题的那个):
有人知道这里发生了什么吗? children的人数怎么会有自相矛盾的报道?
我该如何解决这个问题?我需要遍历 children,但它不允许我这样做,因为长度显然是 0。
提前致谢!
感谢所有帮助。
当您将对象记录到控制台时,对象的当前状态不会被快照和显示(如您所料);相反,控制台会获得对该对象的 实时引用 。当您在控制台中展开它时,您会看到它的内容截至 展开时,而不是您登录时的内容。 this question and its answers.
中有更多相关信息
很明显,当您进行日志记录时,您的集合是空的,然后稍后再获取它们的元素。您只想让您的代码等到集合被填充。例如,如果您在脚本为 运行 时立即执行此操作,请考虑将脚本放在文档末尾,就在结束 </body>
标记之前。
对象旁边的非常微妙 蓝色 (i) 图标有一个有用的工具提示;如果将鼠标悬停在上面,您会看到:
它说“左边的对象值是在记录时拍摄的,下面的值是刚刚计算的。”
但总的来说:我建议 使用浏览器内置的调试器 打开灯 而不是在黑暗中拿着手电筒跌跌撞撞 and/or IDE.
在我的 JavaScript 中,我有两个元素。
我已经记录了这两个元素,它显示如下:
元素 1:
元素 2:
问题是:
- 当我
console.log
每个元素(element.children
)的children时,它显然是returns一个元素列表。 - 但奇怪的是,一个元素是空的(长度为0),但展开后有3个元素(长度为3)
如果您阅读下面的 children 元素的日志,您就会明白我在说什么...
元素 1(这个按预期工作):
元素 2(有问题的那个):
有人知道这里发生了什么吗? children的人数怎么会有自相矛盾的报道?
我该如何解决这个问题?我需要遍历 children,但它不允许我这样做,因为长度显然是 0。
提前致谢! 感谢所有帮助。
当您将对象记录到控制台时,对象的当前状态不会被快照和显示(如您所料);相反,控制台会获得对该对象的 实时引用 。当您在控制台中展开它时,您会看到它的内容截至 展开时,而不是您登录时的内容。 this question and its answers.
中有更多相关信息很明显,当您进行日志记录时,您的集合是空的,然后稍后再获取它们的元素。您只想让您的代码等到集合被填充。例如,如果您在脚本为 运行 时立即执行此操作,请考虑将脚本放在文档末尾,就在结束 </body>
标记之前。
对象旁边的非常微妙 蓝色 (i) 图标有一个有用的工具提示;如果将鼠标悬停在上面,您会看到:
它说“左边的对象值是在记录时拍摄的,下面的值是刚刚计算的。”
但总的来说:我建议 使用浏览器内置的调试器 打开灯 而不是在黑暗中拿着手电筒跌跌撞撞 and/or IDE.