<!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=utf-8" />
<title>childNodes</title>
</head>
 <script type="application/javascript">
   //window.onload =demo();
   window.onload=demo;
   function demo(){
   var btnDemo1=document.getElementById("btnDemo1");
   alert(btnDemo1);
   }
 </script>
<body>
  <input id="btnDemo1" type="button" value="取H1 Element节点值">
</body>
</html>
注意"//window.onload =demo();
      window.onload=demo;"
  原来的代码alert()可以正常显示[object HTMLInputElement]
  但如果将"
     //window.onload =demo();
     window.onload=demo;"
  修改为"
     window.onload =demo();
     //window.onload=demo;"
   alert()就会显示null
   
  可以解释下吗?

解决方案 »

  1.   

    window.onload=         可以将这个看做是要给 window.onload事件赋值window.onload=demo;    这个正确
    window.onload =demo(); 到这就直接执行demo这个函数了,就相当于给onload赋 demo()的返回值了,因为此时btnDemo1 没加载到, 找不到该元素 ,所以是NULL
      

  2.   

    谢谢了,window.onload =demo()是指window.onload等于demo()的返回值,而window.onload =demo是指引用demo