我想在载入页面时为指定ID下的a标签添加onclick事件,在火狐、谷歌、360极速上测试,这样写都能正常显示。便是IE6.0、IE7、IE8和一些IE内核的浏览器上测试,只有第一个for能成功添加,第二个for不成功,请问在应该如何写才可以在IE下正常显示function TestFun() {
function mk1(){
alert('函数1');

}
function mk2(){
alert('函数2');

}
function mk3(){
alert('函数3');

}
var aa = document.getElementById("divid1").getElementsByTagName('a');
var ab = document.getElementById("divid2").getElementsByTagName('a');
for (i = 0;i < aa.length; i++){
aa[i].onclick = mk1();
}
for (i = 0;i < ab.length; i++){
ab[i].onclick = mk2();
}}
window.onload=TestFun;

解决方案 »

  1.   


    好吧,楼主看下,这个可是直接把函数的返回值赋值给那个onclick事件了
      

  2.   

    for (i = 0;i < aa.length; i++){
        aa[i].onclick = function{
            mk1();
        }
    }
    for (i = 0;i < ab.length; i++){
        ab[i].onclick = function{
            mk2();
        }
    }
    这样?测试没问题
      

  3.   

    还没测试呢,因为这样写就已经显示语法错误了,
        ab[i].onclick = function{
            mk2();
        }写成:
        ab[i].onclick = function(){
            mk2();
        }的话,又显示下面的语法错误
    window.onload=TestFun;
      

  4.   

    onload和onclick是同类型的东西,为何你两个的写法还不同,
    onload你就不加括号,但是onclick你干嘛要加个括号呢?
    这两种方法你觉得哪种是对的呢
      

  5.   

    很可惜,IE和IE内核的浏览器虽然支持了。但是火狐、谷歌、360极速全都不支持mk1伤脑筋
      

  6.   

    忽然想到个兼容几种浏览器的办法,既然IE及IE内核浏览器支持一个格式,其它浏览器支持另一个格式。
    为IE的浏览器for一次,再为其它浏览器for一次。刚好全部兼容。呵呵,测试好了!
      

  7.   

    就这么写,绝无问题。至于你真正应用时将mk1,mk2换成了什么样子
    元素是否存在等等,这是你自己需要检查的问题
    <script type="text/javascript">
        function TestFun() { 
            function mk1(){ 
                alert('函数1'); 
            }; 
            function mk2(){ 
                alert('函数2'); 
            };
            function mk3(){ 
                alert('函数3'); 
            }; 
            var aa = document.getElementById("divid1").getElementsByTagName('a'); 
            var ab = document.getElementById("divid2").getElementsByTagName('a'); 
            for (var i = 0;i < aa.length; i++){ 
                    aa[i].onclick = mk1; 
            }; 
            for (var i = 0;i < ab.length; i++){
                    ab[i].onclick = mk2; 
            } 
        }; 
        window.onload=TestFun;
    </script>
    <div id="divid1">
        <a href="###">1</a>
        <a href="###">2</a>
        <a href="###">3</a>
    </div><div id="divid2">
        <a href="###">4</a>
        <a href="###">5</a>
        <a href="###">6</a>
    </div>