解決IE8及以下不支持getElementsByClassName的bug

原因:

在DOM3裏已經加入了getElementsByClassName這個方法,然而IE9、10以外的其它版本均不支持。

第一種方法:

改爲getElementById獲取(好吧,相當於沒說,哈哈哈)

第二種方法:

將原生getElementsByClassName進行修改,加個判斷,如果不支持用自己寫的

if(!document.getElementsByClassName){
    document.getElementsByClassName = function(className, element){
        var children = (element || document).getElementsByTagName('*');
        var elements = new Array();
        for (var i=0; i<children.length; i++){
            var child = children[i];
            var classNames = child.className.split(' ');
            for (var j=0; j<classNames.length; j++){
                if (classNames[j] == className){ 
                    elements.push(child);
                    break;
                }
            }
        } 
        return elements;
    };
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章