众所周知,对于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的标签名 |
来源:http://www.cnblogs.com/soulUED/p/3354727.html