> 웹 프론트엔드 > JS 튜토리얼 > 한 줄의 코드는 document.getElementById_javascript 트릭에 작별을 고합니다.

한 줄의 코드는 document.getElementById_javascript 트릭에 작별을 고합니다.

WBOY
풀어 주다: 2016-05-16 17:52:51
원래의
1420명이 탐색했습니다.

따라서 대부분의 스크립트에서 DOM은 요소의 ID를 통해 직접 액세스됩니다.
 
이후 다양한 브라우저가 속속 등장하면서 점차 IE를 대체하게 되었습니다. 모든 종파가 통일된 규칙을 갖도록 하기 위해 표준화의 중요성이 점점 더 커지고 있습니다. ID에 직접 액세스하는 원래 방법은 점차 document.getElementById로 대체되었습니다. 요즘에도 여전히 ID를 사용하여 요소에 액세스하고 있다면 프로그램에 포함된 웹 페이지를 만들거나 철도부와 같은 초현실적인 골동품 웹사이트를 사용해야 합니다. :) 물론, 확실히 하는 한 사용자가 IE를 사용하여 액세스하는 것은 비표준이지만 사용하는 데에는 문제가 없습니다.
 
그러나 많은 타사 브라우저가 처음 출시되었을 때 당시 수많은 비표준 페이지와의 호환성을 보장하기 위해 ID를 사용하여 DOM에 액세스하는 비표준 관행을 유지했습니다. . 실제로 오늘날의 주류 브라우저 중 FireFox만이 이 접근 방식을 지원하지 않으며 Chrome, Opera, Safari 및 Mobile Safari는 모두 이를 지원합니다.
 
이 경우에는 FireFox도 지원하도록 하여 모든 브라우저가 해당 ID를 사용하여 DOM에 직접 액세스할 수 있도록 하는 것이 좋을 것입니다. 이는 빠르고 편리할 뿐만 아니라 번거로운 코드를 줄이고 작업 효율성을 향상시킵니다. .
 
  구현은 매우 간단합니다. 문서가 로드된 후 id 속성으로 요소를 쿼리한 다음 해당 참조를 창 개체에 추가합니다.

코드 복사 코드는 다음과 같습니다.

var list = document.querySelectorAll('[id]')
for(var i = 0 ; i < list.length ; i )
{
if(list[i].id)
window[list[i].id]
}

물론 이 해킹은 FF에만 필요하므로 먼저 특성이 있는지 확인합니다. 마지막으로 코드를 간소화하고 배열 순회 콜백을 사용하여 간단한 한 줄로 압축합니다.
코드 복사 코드는 다음과 같습니다. 다음:

<script> <br>if('mozHidden' in document) [].forEach.call(document.querySelectorAll('[id]'),function(k){this [k.id] =k}); <br></script>

하지만 문서 로드가 완료되기 전에 querySelectorAll은 현재 요소 이전의 요소만 쿼리할 수 있습니다. <스크립트> 따라서 위의 코드는 문서의 마지막 부분에 배치되어야 합니다. ID를 사용한 액세스는 문서가 로드된 후에도 수행되어야 합니다. 그렇지 않으면 요소를 찾을 수 없습니다. 다음은 모든 브라우저에서 통과되는 테스트 페이지입니다.
코드 복사 코드는 다음과 같습니다.



<br><script type="text/javascript" src="/js/jquery.3.5.2.min.m.js"></script> </head><div style="position: fixed;right: 0;top:100px;width: 125px; z-index:2000;"><div ><a target="_blank" rel="nofollow" href="https://www.520xingyun.com/from/188bet.php" ><img width="120px" height="550px" src="https://www.520xingyun.com/images/188_120.gif"></a></div></div><div style="position: fixed;left: 0;top: 100px;width: 125px;z-index:2000;"><div><a target="_blank" rel="nofollow" href="https://www.520xingyun.com/from/188bet.php"><img width="120px" height="550px" src="https://www.520xingyun.com/images/188_120.gif"></a></div></div> <body> ; <BR><div id="mytag"></div> <br><script> <br>onload = function() <br>{ <br>mytag.innerHTML = "안녕하세요. , document.getElementById!"; <br>} <br></script> <br><script> <br>if('mozHidden' in document) [].forEach.call(document.querySelectorAll('[ id]' ),function(e){self[e.id]=e}) <br></script> <br></html> >
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿