解决方案 »

  1.   

    <body>
    <input id = "a" type = "text" />
    </body>
    <script>
    var input = document.getElementById("a");input.onclick = btnClick;function btnClick(){
    alert("input click");
    }input.onclick();这里,你通过document对象获取到的目标是一个对象,而这个对象上,有很多属性或者方法。
    比如这里,onclick就是一个方法。所以input.onclick = btnClick只是给这个方法重新赋值,
    重新赋值之后,以后再调用该方法时,则执行这个btnClick的方法了。input.onclick(),这个是在执行input对象中的onclick方法。和我们平常调用函数时,
    在函数名后使用括号相同。再举个简单的例子:<script>function btnClick(){
    alert("input click");
    }var obj = {
    click:function(){
    alert("obj click");
    }
    }obj.click();
    //这里直接执行,则弹出“obj click”obj.click = btnClick;obj.click();
    //重新赋值后,再执行,就变成了弹出“input click”了
    </script>
      

  2.   

    input.onclick = btnClick;//把input的onclick事件指向函数btnClick,传址;
    input.onclick = btnClick();//把input的onclick事件指向函数btnClick的返回结果,传值。
    你试一下以下:
    <html>
    <head>
    <script type="text/javascript">
    function getalls()
    {
    var inputs=document.getElementsByTagName('input');
    for( var i=0;i<inputs.length;i++)
    {
    var input=inputs[i];
    input.onclick=btnClick();
    }
    }
    function btnClick() {
        alert("What is this?");
    }
    </script>
    </head>
    <body onload="getalls()">
    <input type="button" value="haha" />
    <input type="button" value="haha" />
    <input type="button" value="haha" />
    <input type="button" value="haha" />
    </body> 
    </html>