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

时间:2023-01-23 19:33:43

之前做一下项目的时候知道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下还是没有引用到,而是报错:

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

程序如下:

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

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

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

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

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