关于jsp页面中,js代码写在哪个位置的问题。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${ pageContext.request.contextPath }/js/jquery-1.7.js"></script>
<script type="text/javascript">
var list = document.getElementById("list"); //当我放在这的时候,alert结果为空
alert(list);
var oli = list.getElementsByTagName("li"); //这里如果我把上面改为$("#list"),那么会报没有这个function。
alert(oli);
</script>
</head>
<body>
<div id="div">s</div>
<ul id="list">
<li>
<a href="" title="iphone_ios">苹果</a>
<div class="popDiv">
</div>
</li>
<li>
<a href="" title="安卓_java">google</a>
<div class="popDiv">
</div>
</li>
<li>
<a href="" title="wp">微软</a>
<div class="popDiv">
</div>
</li>
<li>
<a href="" title="mysql">甲骨文</a>
<div class="popDiv">
</div>
</li>
<li>
<a href="" title="全球最大的社交网站">facebook</a>
<div class="popDiv">
</div>
</li>
</ul>
<script type="text/javascript">
var list = document.getElementById("list"); //放在这里就能拿到。
alert(list);
var oli = list.getElementsByTagName("li");
alert(oli);
</script>
</body>
</html>
把js代码,放在上面和下面有什么区别呢?
------解决方案-------------------- 探讨 js操作dom,需要等dom加载完毕后才可以进行操作。 写在上面也可以 window.onload = function(){ // your code } 意思就是 等 页面 加载完毕在执行js
------解决方案-------------------- 1L正解,DOM树是自上而下顺序加载的,如果在head里面直接运行js代码的话,这个时候body部分还没加载,这样就会取不到里面的元素
通常是等到DOM树全部加载完后在执行js
window.onload=function(){
///...
}
$(function(){
//...
})