getElementsByClassName 메소드에 대해서

Aug 5, 2013

getElementsByClassName 메소드의 용도

클래스명을 가지고 요소를 선택할 때 사용하는 메소드로 웹킷 전용 메소드다. getElementsByTagName과 같이 선택된 요소의 배열을 반환하는데, 이 메소드를 쓰는 것이 따로 JS 라이브러리로 구현하거나 XPATH를 사용하는 것보다 엄청나게 빠르다.

지원되지 않는 브라우저에서 대체하는 방법

IE 9에서는 이 메소드를 지원한다. 반면에 IE 6, 7, 8은 지원하지 않기 때문에 getElementsByTagName 함수를 직접 만들었다.

// 미지원 브라우저에서는 메소드 정의
if(typeof(document.getElementsByClassName) !== "function") {
    document.getElementsByClassName = function(className) {
        var arr = [];
        var ele = document.getElementsByTagName("*");
        var cnt = ele.length;
         
        for(var i=0;i<cnt;i++) {
            arr.push(ele[i]);
        }

        return arr;
    };
}
See Also