javascript中document.getelementbyid缺少对象的问题原因

本文通过一个JavaScript代码示例展示了浏览器加载过程中可能出现的问题。当尝试访问未完全加载的DOM元素时,会导致脚本执行失败。通过调整脚本执行时机,确保DOM元素已加载完成后再进行操作,可以有效避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面这段代码浏览器端运行时会报错:缺少对象
原因是:在还未加载img对象前就试图通过它的id得到img对象。
  从这个错误就可以看出Javascript和html的一些特性。
  下面是报错的代码段
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" type="text/css" href="mario.css" /> 
<head>
   <script language="javascript"> 
      
			var mymario=document.getElementById('mymario'); 
			window.alert(mymario.style.top);
		
          
        </script>  
</head>
<body>
 <div class="gamediv">  
            <img id="mymario" src="i2.png" style="left:100px; top:50px; position:absolute;" /> <!--用到了绝对定位-->  
        </div> 
		
</body>
</html>



修改后

下面这段代码不会报错。原因:加载完img之后再通过它的id得到img对象

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" type="text/css" href="mario.css" /> 
<head>
   <script language="javascript"> 
        function show(){
			var mymario=document.getElementById('mymario'); 
			window.alert(mymario.style.top);
		}
          
        </script>  
</head>
<body>
 <div class="gamediv">  
            <img id="mymario" src="i2.png" style="left:100px; top:50px; position:absolute;" /> <!--用到了绝对定位-->  
        </div> 
		
</body>
</html>
注:源代码片段来自传智播客韩老师的课堂代码。错误为本人遇到。觉得很有价值,和大家分享
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值