>  기사  >  웹 프론트엔드  >  레거시 Internet Explorer 브라우저에서 getElementsByClassName() 문제를 극복하는 방법은 무엇입니까?

레거시 Internet Explorer 브라우저에서 getElementsByClassName() 문제를 극복하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-22 07:33:30507검색

How to Overcome getElementsByClassName() Issues in Legacy Internet Explorer Browsers?

기존 Internet Explorer 브라우저의 getElementsByClassName() 호환성 문제

질문:

아래 코드는 인터넷에서 오류를 발생시킵니다. Explorer 6, 7 및 8:

var borderTds = document.getElementsByClassName('leftborder');

문제:

IE6, IE7 및 IE8과 같은 기존 Internet Explorer 브라우저는 기본적으로 getElementsByClassName()을 지원하지 않습니다. 방법. 이 방법은 클래스 속성을 기반으로 요소를 선택하는 데 사용됩니다.

해결책:

이 문제를 해결하려면 다음 해결 방법을 사용하여 getElementsByClassName()을 에뮬레이트할 수 있습니다. 다음 브라우저의 기능:

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
  }
  return retnode;
}; 

구현:

  1. 스크립트를 HTML 문서에 복사합니다.
  2. 스크립트가 완료된 후 추가된 경우 다음과 같이 getElementsByClassName() 메서드를 사용할 수 있습니다.
var borderTds = document.getElementsByClassName('leftborder');

이점:

이 해결 방법을 사용하면 클래스별로 요소를 선택할 수 있습니다. jQuery와 같은 외부 라이브러리에 의존하지 않고 기존 Internet Explorer 브라우저를 사용할 수 있습니다.

위 내용은 레거시 Internet Explorer 브라우저에서 getElementsByClassName() 문제를 극복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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