>  기사  >  웹 프론트엔드  >  Internet Explorer에서 getElementsByClassName()을 어떻게 사용합니까?

Internet Explorer에서 getElementsByClassName()을 어떻게 사용합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-05 19:15:02297검색

How to Use getElementsByClassName() in Internet Explorer?

IE에서 document.getElementsByClassName의 호환성

Internet Explorer에서는 document를 사용하여 특정 클래스가 있는 요소 배열을 검색하려고 할 때 문제가 발생합니다. .getElementsByClassName(). 이러한 제한을 극복하려면 맞춤형 솔루션이 필요합니다.

Jonathan Snook의 방법

IE에서 document.getElementsByClassName()을 에뮬레이트하는 한 가지 접근 방식은 Jonathan Snook의 기능을 활용하는 것입니다. getElementsByTagName(*)을 사용하여 노드 내의 모든 요소를 ​​반복하고 원하는 클래스의 존재 여부에 따라 요소를 필터링합니다.

IE 비호환성

Snook 솔루션을 구현했음에도 불구하고 IE에서는 "개체가 이 속성이나 메서드를 지원하지 않습니다."라는 오류가 계속 발생할 수 있습니다. 이는 getElementsByClassName()이 IE에서 문서 개체의 직접적인 메서드가 아니기 때문입니다.

수정된 구현

Snook 기능을 올바르게 구현하려면 대상 노드를 명시적으로 지정해야 합니다. :

var tabs = getElementsByClassName(document.body, 'tab');

IE8 지원

IE8 이상 버전의 경우 단순화된 접근 방식을 활용할 수 있습니다.

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return this.querySelectorAll("." + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

이 코드 조각은 다음을 정의합니다. getElementsByClassName()을 문서 개체의 메서드로 사용하고 Element.prototype.getElementsByClassName()을 통해 개별 요소에서 사용할 수도 있습니다.

사용

구현되면 getElementsByClassName() 메소드는 다음과 같이 사용할 수 있습니다:

var tabs = document.getElementsByClassName('tab');

위 내용은 Internet Explorer에서 getElementsByClassName()을 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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