JS 数组的属性length 赋值新变量 ,新变量的数值为0
javascript吧
全部回复
仅看楼主
level 2
2022年06月08日 03点06分 1
level 13
代码执行时序的问题。
如果你的脚本是写在要获取的元素前面,那么会因为脚本先一步执行而获取不到之后才被读取到的元素。简单讲就是你的代码执行的时候其他元素还没有被读取出来。在那个时候 content.length 自然是 0。
你在网页加载完才去读取变量的内容是看不出问题的,因为 getElementsByClassName 获取到的元素集合是会实时变化的,但是 con_L 的内容赋值了之后是不会自己变的。
上面的例子,把 getElementsByClassName 的结果赋值给 tt,然后向 DOM 插入元素。然后不做多余操作直接再读取 tt,可以发现 tt 上面的 HTMLCollection 对象是会变的。
所以想获取
正确的
数量应该推迟你的脚本执行。
在 script 元素上面加 defer 属性,或者把 script 挪到要获取的元素的后面,再或者监听 window.onload 事件来执行你的代码。
2022年06月10日 09点06分 2
还有就是 getElementsByClassName 拿到的不是数组,是很像数组的 HTMLCollection 对象,而且它没有数组的很多方法,还会实时变动。
2022年06月10日 09点06分
后来发现了 还是感谢回答哈 [哈哈]
2022年07月16日 06点07分
1