为什么`element.children.length`在控制台日志中显示0,但展开时显示子项?
控制台日志和扩展视图之间的 element.children 长度差异
使用 console.log 检查元素的子元素(例如,element.children)时,有时会遇到控制台输出显示长度为 0,而在控制台中展开元素会显示非零数量的子元素。这种看似矛盾的行为可归因于:
控制台日志中的实时引用
将对象记录到控制台时,控制台不会快照其当前状态。相反,它获取对该对象的实时引用。因此,当记录的对象发生更改时,其在控制台中的表示也会相应更新。
在这种情况下,元素的子集合在记录时最初为空。然而,由于元素的 DOM 更新和动态添加元素,子集合会增加元素,从而导致长度不一致。
解决方案:延迟代码执行
要解决此问题,请确保您的代码在填充元素的子元素后执行。一种方法是将代码放在文档的末尾,就在结束符