js代码在head中和外联js中都不能用,只有在body中可用

代码很简单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
alert(document.getElementById("yes"));

</script>
</head>
<body>
<div id="yes"></div>
</body>
</html>
script代码在head中还有外联js中弹出来都是null,只有在body里的最下面才弹出来object HTMLDivElement
为什么?

很简单的问题,因为此时DON结构还没加载完成,也就是还没读取到<div id="yes"></div>这句,但是你的js代码已经执行了执行了就会获取不到

解决方法有三个,一个是运用onload,一个是写进JQ当中,$(function(){写进这里面}),因为JQ的执行机制是DOM加载完成后完成,比onload执行速度更快,第三个就是你运用的方法,将这段JS代码放到<div id="yes"></div>后面,你放在他前面也或获取不到,就算获取到也只是因为运气好(正常是获取不到的我就不试了)

这样的回答希望能帮到您,劳烦采纳,有问题请追问,您应该是新手,因为这是机制问题,如果不会写就追问,我写出代码给你看
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答