请教大家一个问题:
[html]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/JavaScript">
<!--
var x = window.document.getElementById("here");
x.onclick = hello ;
function hello(){
alert("js代码执行了!");
}
//-->
</script>
</head>
<body>
<a href="#" id="here">这是一个a标签</a>
</body>
</html>[/html]为什么我把js代码放在<body>标签对里就可以执行了???而放在<head>里就不行,变量x定义无效。

解决方案 »

  1.   

    var x = document.getElementById("here"); 
    要放在here这个元素加载后不然当然取不到了
      

  2.   

    要确保div已经加载完毕后才能引用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <title>无标题文档 </title> 
    <script type="text/JavaScript"> 
    <!-- 
    window.onload=function(){
    var x = window.document.getElementById("here"); 
    x.onclick = hello ; 
    }
    function hello(){ 
    alert("js代码执行了!"); 

    //--> 
    </script> 
    </head> 
    <body> 
    <a href="#" id="here">这是一个a标签 </a> 
    </body> 
    </html> 
      

  3.   

    你放在head 中,这时候body 还没加载完,当然会找不到对象。
      

  4.   

    本来想把分给hookee的,马虎!呵呵