最近也是学习js突然遇到了一个问题,js代码写下body中和head中运行的结果不一样, 用简单的一句话介绍就是加载顺序的问题。如果放入head,那当页面加载head部分的时候,那个控件都还没有被定义,你能得到的只可能是一个undefind。 如果放入控件后面,则达到了所想的结果,此时控件已经定义完成可以被访问。
下面展示一些 内联代码片
。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/new.js"></script>
<!--<link rel="stylesheet" type="text/css" href="css/new.css"/>-->
<script type="text/javascript">
var d1 = document.getElementById("div1");
function myfun1() {
d1.style.background = "red"
d1.innerHTML = "cwc";
}
var but = document.getElementById("an1");
but.addEventListener("click", myfun1);
</script>
</head>
<body >
<!--<h1 >Snapshots</h1>
<ul>
<div id="div1" style="width: 300px; height: 300px; background: green;">
</div>
<input type="button" value="按钮" id="an1" />
*控件定义完成
<script type="text/javascript">
var d1 = document.getElementById("div1");
function myfun1() {
d1.style.background = "red"
d1.innerHTML = "cwc";
}
var but = document.getElementById("an1");
but.addEventListener("click", myfun1);
</script>
</body>
</html>