各バージョンのブラウザと互換性があり、オリジナルJsをカプセル化してClassNameを取得する

915 ワード

オリジナルjsメソッドdocument.getElementsByClassNameはie 8およびそれ以下のブラウザでは使用できないので、IE対応のメソッドが書かれている.コードは次のとおりです.
/** 
*   class       css      
*/
function getClassNames(classStr, tagName){
    if (document.getElementsByClassName)    {
        return document.getElementsByClassName(classStr)
    } else {
        //    ie8         
        var nodes = document.getElementsByTagName(tagName), ret = [];
        for (i = 0; i < nodes.length; i++) {
            if (hasClass(nodes[i], classStr)) {
                ret.push(nodes[i]);
            }
        }
        return ret;
    }
}
/**
 *     class   
 */
function hasClass(tagStr, classStr){
    //          class     ,      
    var arr = tagStr.className.split(/\s+/);//   split(" ")
    for ( var i = 0; i < arr.length; i++) {
        if (arr[i] == classStr) {
            return true;
        }
    }
    return false;
}