>  기사  >  웹 프론트엔드  >  Internet Explorer에서 클래스 이름으로 요소를 검색하는 방법은 무엇입니까?

Internet Explorer에서 클래스 이름으로 요소를 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-06 00:48:02880검색

How to Retrieve Elements by Class Name in Internet Explorer?

getElementsByClassName() IE와의 호환성

질문: 특정 클래스가 있는 요소 배열을 효과적으로 검색하는 방법 , IE 호환성 제한을 고려하시나요?

답변:

Document.getElementsByClassName()은 IE에서 지원하지 않는 최신 방법입니다. 대신 다음 접근 방식을 고려하세요.

사용자 정의 함수(IE6):

getElementsByClassName()을 에뮬레이트하는 사용자 정의 함수를 정의합니다. 여기에는 DOM을 탐색하고 제공된 클래스 이름에 대해 요소의 클래스 이름을 테스트하는 작업이 포함됩니다.

<code class="js">function getElementsByClassName(node, className) {
    var a = [];
    var re = new RegExp('(^| )' + className + '( |$)');
    var els = node.getElementsByTagName('*');
    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className)) a.push(els[i]);
    return a;
}

// Usage:
var tabs = getElementsByClassName(document.body, 'tab');</code>

querySelectorAll (IE8 ):

IE8 이상을 지원하는 것으로 충분한 경우 , querySelectorAll():

<code class="js">if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {
        return this.querySelectorAll('.' + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

// Usage:
var tabs = document.getElementsByClassName('tab');</code>

문서 메서드가 아니기 때문에 원하는 노드를 첫 번째 인수로 사용하여 getElementsByClassName()을 호출해야 합니다. 이러한 솔루션 중 하나를 구현하면 클래스 이름으로 요소를 검색할 수 있으므로 IE를 포함한 더 넓은 범위의 브라우저와의 호환성이 보장됩니다.

위 내용은 Internet Explorer에서 클래스 이름으로 요소를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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