Triangel

生活除了诗和远方,还有油盐酱醋茶。

导航

关于IE8及其以下的IE版本不支持getElementsByClassName

之前做一下项目的时候知道IE8以及其以下的版本不支持getElementsByClassName,于是乎自己写了一个函数重新定义getElementsByClassName,函数代码如下:

function getClassName(classname){
  if(document.getElementsByClassName){
    return document.getElementsByClassName(classname);
  }else{
    var aa = document.getElementsByTagName("*"),
      results = new Array();
    for(var i=0; i<aa.length; i++){
      if(aa[i].className == classname){
        results[results.length] = aa[i];
      }
    }
    return results;
  }
}

 

之前遇到的一种情况是这么写的:

测试的时候,在IE8下还是没有引用到,而是报错:

 

程序如下:

不知道报错原因是什么?这个问题需要好好研究研究。。

 

今天重新思考了一下,觉得是因为getElementsByClassName是已经定义了的方法,所以重新改动浏览器还是会直接访问原来的方法,不会调用我定义的方法,所以我将函数名字改了,并且因为IE7不支持indexof,也改了if的判断条件,代码如下:

这样在IE8及其一下的版本都可以运行成功啦啦啦~~~

 

posted on 2016-04-03 23:18  Triangel  阅读(244)  评论(0编辑  收藏  举报