<script type="text/javascript">
function ele(){
var btn = '<input type="button" id="asd" value="test" onclick="javascritp:a(1,2);" />';
 document.body.innerHTML=btn;
}function a(a,b){
    alert(a+b);

</script>

解决方案 »

  1.   


    function ele(x,y){ 
        var btn = document.createElement("<input type='button' onclick='a('"+x+","+y+")' />");
        document.body.appendChild(btn); 
    } function a(x,y){ 
        alert(x+y); 

      

  2.   

    晕了,输错了个'号function ele(x,y){ 
        var btn = document.createElement("<input type='button' onclick='a("+x+","+y+")' />");
        document.body.appendChild(btn); 
    } function a(x,y){ 
        alert(x+y); 

      

  3.   

    继续修正错误,发现传递值为非数字时出现错误(参数成了变量);还用以下方法好些。。function ele(x,y){ 
        var btn = document.createElement("<input type='button' />");
        btn.onclick=function(){a(x,y)};
        document.body.appendChild(btn); 
    } function a(x,y){ 
        alert(x+y); 

      

  4.   

    不知道这样可以吗 在ele函数外声明全局变量 ele函数内赋值即可
    <script type="text/javascript">
    var a;
    var b;
    function ele(){
        var btn = document.createElement("input");
        btn.type="button";
        a=1;
        b=2;
        btn.onclick = a;
        document.body.appendChild(btn);
    }function a(a,b){
        alert(a+b);

    <scripy>
      

  5.   

    你能不能把按钮对象作为参数传递嘛?比如:
    function ele()

         var btn = document.createElement("input"); 
         btn.type="button"; 
    btn.value="Test";
         btn.onclick = function()
         {
            btn.a=100;
            btn.b=200;
            a(btn);
         }; 
         document.body.appendChild(btn); 
    }  function a(obj)

    alert(obj.a+obj.b); 

      

  6.   

    js 有个方法 call 和 apply楼主可以研究下,可以解决函数传参的问题 
      

  7.   

    var obj= new  Object();
    obj.a = 100;
    obj.b = 100;function ele(){
     var btn  = document.createElement("input");
     btn.type = "button";
     btn.value = "test";
     btn.onclick = a.call(this,obj);
     document.body.appendChild(btn);
    }function a(obj){
     alert(obj.a+obj.b);
    }