任何知道这个Javascript代码的方法?

时间:2013-11-05 12:57:26

标签: javascript

我一直注意到我的网站发生了一些奇怪的事情,所以当我遇到这个时,我一直在检查我的文件:

if( typeof document.getElementsByClassName != 'function' ) {
    document.getElementsByClassName = function(classname) {
        var node = document.body;
        var a = [];
        var re = new RegExp('(^| )'+classname+'( |$)');
        var els = node.getElementsByTagName("*");
        for(var i=0,j=els.length; i<j; i++)
            if(re.test(els[i].className))a.push(els[i]);
                return a;
    }
}

有谁知道这可能会做什么?

1 个答案:

答案 0 :(得分:4)

您的代码是document.getElementsByClassName对象的document方法的简单实现。它是一个标准的方法,但没有在旧的浏览器中定义(如旧的IE版本)。

if( typeof document.getElementsByClassName != 'function' ) {

此部分检查方法的类型是否不是函数(因此未定义),如果是,则稍后定义它。

使用此方法,您可以使用类名从文档中选择DOM元素,例如

<div class="box"></div>
document.getElementsByClassName('box')