> 웹 프론트엔드 > JS 튜토리얼 > 전역 속성으로 ID로 DOM 요소에 액세스할 수 있나요? 그래야 하나요?

전역 속성으로 ID로 DOM 요소에 액세스할 수 있나요? 그래야 하나요?

Susan Sarandon
풀어 주다: 2024-12-21 13:25:13
원래의
453명이 탐색했습니다.

Can I Access DOM Elements by ID as Global Properties, and Should I?

ID가 할당된 DOM 요소 및 전역 속성

이전 질문에서 ID가 있는 특정 DOM 요소에 변수로 액세스할 수 있는 것으로 관찰되었습니다. Internet Explorer 및 Chrome의 창 개체 이름 또는 속성입니다. 예를 들어 HTML 요소의 경우:

<div>
로그인 후 복사

innerHTML 속성은 다음과 같이 검색할 수 있습니다.

alert(example.innerHTML); // Alerts "some text".
alert(window["example"].innerHTML); // Alerts "some text".
로그인 후 복사

이렇게 하면 다음과 같은 질문이 제기됩니다.

  • ID가 있는 모든 DOM 요소가 전역 객체 속성으로 변환됩니까?
  • 이 메커니즘을 getElementById 메소드?

속성 및 전역 접근성

의도된 동작은 명명된 요소가 문서 객체의 명백한 속성이 되도록 하는 것입니다. 그러나 이 접근 방식은 요소 이름이 실제 문서 속성과 충돌할 수 있기 때문에 문제가 있습니다.

Microsoft Internet Explorer는 명명된 요소를 창 개체의 속성으로 할당하여 문제를 더욱 악화시켰습니다. 이로 인해 문서 또는 창 개체의 구성원과 일치하는 요소 이름을 피해야 하므로 문제가 더욱 복잡해집니다.

전역 접근성 문제

또한 명명된 요소는 다음과 같이 표시됩니다. 전역변수. 일반적으로 전역 변수와 함수 선언이 이를 가리지만, 이름이 일치하는 전역 변수에 값을 할당하면 Internet Explorer에서 오류가 발생할 수 있습니다.

모범 사례

일반적으로 명명된 요소를 전역 속성으로 사용하거나 전역 변수를 생성할 때 var 선언을 생략하는 것은 권장되지 않습니다. 더 폭넓은 지원과 모호성 감소로 인해 document.getElementById를 준수하는 것이 좋습니다. 입력이 문제가 되면 더 짧은 이름의 간단한 래퍼 기능을 사용하는 것이 좋습니다.

캐싱 및 브라우저 최적화

ID-요소 조회 캐시를 유지하는 것은 일반적으로 불필요합니다. 브라우저는 종종 빠른 조회를 사용하여 getElementById 호출을 최적화합니다. 요소가 ID를 변경하거나 문서에서 추가/제거되면 잠재적인 문제가 발생합니다.

표준화 및 향후 영향

이제 HTML5 사양은 이전의 비표준 관행을 성문화합니다. 문서 및 창 속성에 명명된 요소를 추가합니다. 이는 Firefox 4에서도 이 기능을 지원한다는 의미입니다.

결론

특정 브라우저에서는 전역 속성으로 ID를 사용하여 DOM 요소에 액세스할 수 있지만 이 방식은 잠재적인 갈등과 모호함으로 인해 낙담했습니다. document.getElementById 또는 간단한 래퍼 함수를 ​​사용하는 것이 더 좋습니다.

위 내용은 전역 속성으로 ID로 DOM 요소에 액세스할 수 있나요? 그래야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿