IE8重写document.getElementsByClassName方法

时间:2022-11-04 20:38:29

众所周知,对于IE8以下的浏览器(IE8居然是WIN7预装的)没有document.getElementsByClassName,网上也有很多重写的方法,以下是本人在项目中所使用的方法


document.getElementsByClassName = function (Name,e,tag) {
var ele = [],
allEle,
length,
i = 0;

if (typeof tag === "undefined" ){
tag = "*"
}

if (typeof e === "undefined"){
e = document;
}

allEle = e.getElementsByTagName(tag);

for (length = allEle.length;i < length;i = i + 1){
if (allEle[i].className === Name) {
ele.push(allEle[i]);
}
}

return ele;
}


1 解释下参数问题,首先我们使用的时候后2个参数是可选的,对于IE8以下的浏览器来说,遍历整个DOM树是非常消耗时间的,所以在一般情况下为这种浏览器我们需要一种定位的概念,就是指定后2个参数来更精确的其位置,以提升开发效率
1 第二个参数是元素对象(element),指定你所找到的className元素的父元素
1 第三个参数是标签名,指定你所要找的className的标签名
1   

1 剩下,我就不多说了,大家看代码都能看懂了


来源:http://www.cnblogs.com/soulUED/p/3354727.html