>웹 프론트엔드 >JS 튜토리얼 >IE 브라우저가 getElementsByClassName_javascript 기술을 지원하지 않는 문제에 대한 해결 방법

IE 브라우저가 getElementsByClassName_javascript 기술을 지원하지 않는 문제에 대한 해결 방법

WBOY
WBOY원래의
2016-05-16 16:38:241243검색

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;
  };
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.