为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在head中获取元素数组的长度为0,放到body div元素后可以获取元素数组长度

为什么在head中获取元素数组的长度为0,放到body div元素后可以获取元素数组长度

jugge 2017-03-08 17:23:58
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <script>     var x = document.getElementsByClassName("example");     console.log(x.length)//长度为0 </script> </head> <body> <div class="example">第一 Div 元素 class="example"。</div> <script>     var x = document.getElementsByClassName("example");     console.log(x.length)//长度为1 </script> </body> </html>
查看完整描述

2 回答

?
问道_imooc

TA贡献6条经验 获得超2个赞

浏览器解析页面,是从上往下解析的,上面解析到js代码的时候,下面的html还没有加载完成,因此获取的节点数是0.js代码放到html下面,此时已经加载了,因此能获取DOM个数。

解决的方法:

1、要么把js代码放在html的后面,(你上面能获取到节点数的代码)

2、把js代码放在页面onload事件函数内部,即页面加载完成了才执行js

3、使用jquery:

$(function(){

   ... js代码 

})

思路和第二个一样,只是使用jquery框架更简单。

查看完整回答
2 反对 回复 2017-03-08
?
hahhhha

TA贡献50条经验 获得超32个赞

浏览器解析页面,是从上往下解析的。

所以需要将js放在页面尾部

或者使用window.onload

查看完整回答
反对 回复 2017-03-13
  • 2 回答
  • 1 关注
  • 2112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信