admin
管理员
管理员
  • UID1
  • 粉丝2
  • 关注2
  • 发帖数339
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:4702回复:0

document.getElementsByClassName方法的重写(OVERRIDE)

楼主#
更多 发布于:2013-10-06 23:14
分享到:
众所周知,对于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<span style="font-style: italic;">.className === Name) {
        ele.push(allEle<span style="font-style: italic;">);
    }
    }
   
    return ele;
}
解释下参数问题,首先我们使用的时候后2个参数是可选的,对于IE8以下的浏览器来说,遍历整个DOM树是非常消耗时间的,所以在一般情况下为这种浏览器我们需要一种定位的概念,就是指定后2个参数来更精确的其位置,以提升开发效率
第二个参数是元素对象(element),指定你所找到的className元素的父元素
第三个参数是标签名,指定你所要找的className的标签名
游客

返回顶部