之前做一下项目的时候知道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及其一下的版本都可以运行成功啦啦啦~~~