<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" http-equiv="Content-type"/>
<title>
Document
</title>
<script type="text/javascript">
var div=document.getElementById('div');
function fun(){
div.style.background="red";
}
</script>
</head>
<body>
<div id="div" style="width:200px;height: 100px;background: blue" οnmοuseοver="fun()">
</div>
</body>
<html lang="en">
<head>
<meta charset="UTF-8" http-equiv="Content-type"/>
<title>
Document
</title>
<script type="text/javascript">
var div=document.getElementById('div');
function fun(){
div.style.background="red";
}
</script>
</head>
<body>
<div id="div" style="width:200px;height: 100px;background: blue" οnmοuseοver="fun()">
</div>
</body>
</html>
首先要明白javascript执行的顺序是顺序执行的。从上到下,从左到右。
当界面加载的时候,加载到head下面的script的时候,document此时还未加载。所以第一句div为null.
当执行fun()方法时候,由于div为null所以报错。
第二个如果在页面未加载完毕调用的时候仍然会报错。原理同上。
所以如果script写在head中,一定记住加上判断界面执行完毕后执行相关代码。常用的。
普通javascript :window.οnlοad=function(){
//todo;
}
Jquery:$(function(){
//todo
});
这样确保dom加载完毕后执行。或者是在页面最后写script。