yuandeabc 发表于 2022-9-21 21:38

js取数组成员个数

有一个网页,我用
var N = document.getElementsByClassName("bo").length;
      console.log("N:"+N)

来获取某个网页中该数组成员个数。
发现的问题是,每次首次访问该网页的时候,数组成员获取失败,console.log输出N值为0.但是如果我手动刷新一次页面,上面的命令就能获取到数组成员数N值55. 当然上面的命令,我已经设置了3秒后执行取数组成员数。按理来说,不会发生这样的现象。请问和解?

坏人。丶 发表于 2022-9-21 21:45

// (1)、页面所有内容加载完成执行
window.onload = function(){
   
}

// (2)、页面加载完毕
document.onreadystatechange = function(){
    if(doucument.readyState == 'complete'){
      // 页面加载完毕
    }
}

yuandeabc 发表于 2022-9-21 21:50

坏人。丶 发表于 2022-9-21 21:45
// (1)、页面所有内容加载完成执行
window.onload = function(){
   


试了楼上的方法,结果是网页不动了,永远不执行放进去的代码,即使手动刷新也不执行

kesai 发表于 2022-9-21 22:16

页面加载完才能获取到元素啊

evlon 发表于 2022-9-21 22:17

最简单的就是设置一个延时,settimeout

复杂的你得看是用的什么框架,如果是vue的话,需要在正确的时间执行之后,再查看变量的值


还有一种方法就是你截获http的事件,在指定查询事件完成之后再去查询这个变量

sololau00 发表于 2022-9-21 22:20

坏人。丶 发表于 2022-9-21 21:45
// (1)、页面所有内容加载完成执行
window.onload = function(){
   


页面加载后才执行,试试看

yuandeabc 发表于 2022-9-21 22:41

evlon 发表于 2022-9-21 22:17
最简单的就是设置一个延时,settimeout

复杂的你得看是用的什么框架,如果是vue的话,需要在正确的时间 ...

我就是用settimeout 设置3秒的,三秒估摸应该足够

yuandeabc 发表于 2022-9-21 22:42

sololau00 发表于 2022-9-21 22:20
页面加载后才执行,试试看

试过这个,这个页面加载我以前用过,用到这里,就会永远没加载完,故永远不执行放进去的代码

坏人。丶 发表于 2022-9-21 23:15

用一个btn测试,点击 然后输出个数 ,觉得是你代码写法有问题,但是不贴出来 只能考猜测

三滑稽甲苯 发表于 2022-9-22 07:54

最小可用代码发个出来
页: [1] 2 3
查看完整版本: js取数组成员个数