<html>
<head>
<title>1111</title>
<script>
var bt=document.getElementById("but1");
bt.attachEvent("onclick",fy);
function fy(){
alert("点击了一下");
}
</script>
</head><body><input type="button" id="but1" value="点击" /></body>
</html>
为什么提示bt为空或不是对象啊

解决方案 »

  1.   

    下面dom还没加载呢,怎么会有but1元素,要在页面dom加载完成后再调用
    var bt=document.getElementById("but1");
    或者把这些js放到该元素的下面执行。
      

  2.   


    <html>
    <head>
    <title>1111</title>
    <script>
    window.onload = function(){
    var bt=document.getElementById("but1");
    bt.attachEvent("onclick",fy);
    }
    function fy(){
    alert("点击了一下"); 

    </script>
    </head>
    <body>
    <input type="button" id="but1" value="点击" >
    </body>
    </html>
      

  3.   


    <html>
    <head>
     <title>1111</title>
     </head><body><input type="button" id="but1" value="点击" />
    <script>
     var bt=document.getElementById("but1");
     bt.attachEvent("onclick",fy);
     function fy(){
     alert("点击了一下"); 

    </script></body>
    </html>
      

  4.   

    4楼5楼方法应该是可行的 JS是解释执行的想要实现楼主的功能要求按钮要先被加载 所以4楼直接 window.onload在页面加载完之后执行 5楼的方法是先加载按钮 这样在执行JS的时候就不会出现bt为空或不是对象了 这样楼主就能理解了吧
      

  5.   


    <?xml version="1.0" encoding="UTF-8" ?>
    <!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>1111</title>
    </head>
    <body>
    <input type="button" id="but1" value="点击" />
    <script>
    var fy=function(){
    alert("点击了一下");
    }
    var bt=document.getElementById("but1");
    var type='click';
    if(window.attachEvent)
     bt.attachEvent('on'+type,fy);
    else
     bt.addEventListener(type,fy,false);
    //bt.attachEvent("onclick",fy);</script>
    </body>
    </html>
    这段我测试了,IE和Firefox都可以
      

  6.   

    javascript版:
    <html>
    <head>
    <title>1111</title>
    <script type="text/javascript">
    function ClickEvent()
    {
    var bt=document.getElementById("but1");
    bt.attachEvent("onclick",fy);
    }
    function fy(){
    alert("点击了一下");
    }
    window.onload=ClickEvent;
    </script>
    </head>
    <body>
    <input type="button" id="but1" value="点击" />
    </body>
    </html>
    Jquery版:
    <html>
    <head>
    <title>1111</title>
    <script type="text/javascript" src="jquery-1.4.1.min.js"></script>
    <script type="text/javascript">
    $(function(){
    $("#but1").click(function(){
     alert("点击了一下");
    }
    );
    }
    );
    </script>
    </head>
    <body>
    <input type="button" id="but1" value="点击" />
    </body>
    </html>