getElementsByClassName 메소드가 DOM3에 추가되었지만 IE9 및 10을 제외한 다른 버전에서는 지원되지 않습니다. 이것은 고통스러운 일입니다!
현재 해결 방법은 브라우저가 이 메소드를 지원하는지 확인하는 것입니다. 지원하지 않으면 getElementsByClassName 메소드를 문서 객체에 추가하세요. 네이티브 함수가 있는지 여부에 관계없이 코드를 수정해야 합니다.
인터넷에서 getElementsByClassName 함수를 직접 정의하는 사람들도 있지만 이 경우 코드에서 document.getElementsByClassName의 모든 사용을 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; }; }