这个 执行 不了 <script type="text/javascript">
  document.getElementById("panel").onclick=function(){
    alert( "元素已经加载完毕 !");
  }
    /*执行错误*/
</script>
</head>
<body>
<div id="panel">click me.</div>
</body>下面一个正确的 
<div id="panel">click me.</div>
<script type="text/javascript"> 
  document.getElementById("panel").onclick=function(){
    alert( "元素已经加载完毕 !");
  }
  /*正确执行*/
</script>
</body>
</html>为什么把 JavaScript 放在body里面 就不会报错呢 ????

解决方案 »

  1.   

      document.getElementById("panel").onclick=function(){
      alert( "元素已经加载完毕 !");
      }
      /*执行错误*/
    </script>
    </head>
    把javascript放在head中,只有你在<body>中有相对应的<onclick>标记才能运行这个函数。而放在<body>中的js函数会当页面加载到函数的位置的时候直接运行代码。
      

  2.   

    我觉得能把上面两段html写出来就应该知道这个为什么会出错 
      

  3.   

    网页加载是文档流加载过程,当然有先右后。
    你写前面先加载,
    当然无法获取后面的未加载的元素(DOM)
      

  4.   

    <script type="text/javascript">
    function test(){
      document.getElementById("panel").onclick=function(){
      alert( "元素已经加载完毕 !");
      }
    }
    </script>
    </head>
    <body onload="test();">
    <div id="panel">click me.</div>
    </body>
      

  5.   

    个人理解
    HTML在读代码的时候是逐句读写
    而当你调用panel的onCLick事件的时候
    它为undulate