为什么js代码放在head中报错,放在body中却能正常调用

<script>
      var box = document.getElementById("box1");
      box.style.width = '100px';
</script>

如上代码,通过js设置标签样式,但是一直报错
在这里插入图片描述
这是因为,涉及到dom查询,这个时候dom树还没构建完成,所以查询不到标签。写在head里面的都dom查询js代码要用window.onload包裹一下。

<script> 

	window.onload = function(){
		 var box = document.getElementById("box1");
    	 box.style.width = '100px';
	}
</script>

window.onload()方法用于在网页加载完毕后立刻执行的操作,及当HTML文档加载完毕后,立刻执行某个方法。

为什么要用window.onload()?

因为javascript代码中的函数方法需要在HTML文档渲染完成后才能使用,如果没有渲染完成,此时dom树是不完整的,这样在调用一些javascript代码时就可能报出“undefined”错误


window.onload()和$(document).ready(function(){})的区别

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值