元素getElementsByClassName IE

时间:2014-01-31 21:18:59

标签: javascript

我为IE

提供了document.getElementsByClassName的代码
if (!document.getElementsByClassName) { // 4ie

    document.getElementsByClassName = 
    function(classname) {
        var elArray = [],
            tmp = document.getElementsByTagName("*");
            regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
        for ( var i = 0; i < tmp.length; i++ ) {

            if ( regex.test(tmp[i].className) ) {
                elArray.push(tmp[i]);
            }
        }

        return elArray;
    };
}

如何更改此代码以使其适用于单个HTML元素? 与div.getElementsByClassName('123')

一样

1 个答案:

答案 0 :(得分:1)

你有几个选择。第一个是因为getElementsByClassName总是返回一个数组,如果你知道基于你传递它的类名,它只会抓住一个元素你可以使用getElementsByClassName('123')[0]来获得那个元素。如果它抓取多个元素,那么getElementsByClassName('123')[0]将返回第一个元素。

其次你可以添加一个必须对于单数元素唯一的Id,并使用getElementById()函数来获取它。