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 중국어 웹사이트의 기타 관련 기사를 참조하세요!