<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD> <BODY>
 <script language="javascript">
function attachElem(){ var button = document.createElement("button"); 
button.value = "button"; 
button.onclick = doit;
document.body.appendChild(button); }function doit(){ 
window.alert("ok"); 
} attachElem();
</script>
 </BODY>
</HTML>

解决方案 »

  1.   

    感谢回复,如果我的代码是这样呢?
    <script type="text/javascript">
    function attachElem(){
      var button = document.createElement("button");
      button.innerHTML = "button";
      button.onclick = this.doit();
      document.body.appendChild(button);  function doit(){
        button.innerHTML = "ok";
      }
    }
    </script>
      

  2.   

    button.onclick = this.doit();//这样写不好,加了括号就是执行函数了!
    //button.onclick = this.doit 这样是传递函数里面最好不要有函数,外面函数没了,函数变量都没有了,里面的函数调用不了这个变量
      

  3.   

    感谢回复,我希望如果在同个页面attachElem()两次时,onclick不要搞错对象,当然对象不一定是button自己
    <script type="text/javascript">
    function attachElem(){
      var button = document.createElement("button");
      button.innerHTML = "button";
      button.onclick = this.doit();  var span = document.createElement("span");  document.body.appendChild(button);
      document.body.appendChild(span);  function doit(){
        span.innerHTML += "ok";
      }
    }attachElem();
    attachElem();
    </script>
      

  4.   

    用 无名函数写button.onclick =function()
    {
     window.alert("ok"); 
    }