IE7, IE8에서 getElementsByClassName 구현하기
의외로 IE7, IE8에서 getElementsByClassName를 지원하지 않아 살짝 당황했었다. 아래는 IE7과 IE8에서도 가능하게 만들어준다. 사용시는 그냥 document.getElementsByClassName 대신 getElementsByClassNameCompatible만 넣어주면(document 객체 빼고) 그대로 사용할 수 있다.
getElementsByClassNameCompatible = function(className) {
if(document.getElementsByClassName) {
return document.getElementsByClassName(className);
}
var regEx = new RegExp(‘(^| )’+className+'( |$)’);
var nodes = new Array();
var elements = document.body.getElementsByTagName(“*”);
var len = elements.length;
for(var i=0; i < len ; i++) {
if(regEx.test(elements[i].className)) {
nodes.push(elements[i]);
}
}
elements = null;
return nodes;
}
아래 첨부파일에 위 소스 내용을 다 포함하고 있으므로 받아서 사용할 수 있다.