질문은 다음과 같이 들릴 것입니다 : "제공된 ID를 가진 HTML 태그가 전 세계적으로 접근 가능한 DOM 요소가됩니까?"
대답은 '예'입니다.
그것이 작동하는 방식이고, 이것이 W3C에 의해 ID가 도입 된 이유입니다.
파싱 된 스크립팅 환경에서 HTML 태그의 ID는 해당 DOM 요소 핸들이됩니다.
그러나 Netscape Mozilla는 W3C를 준수하지 않기를 거부했으며 더 이상 사용되지 않는 Name 속성을 사용하여 혼란을 일으켰으므로 W3C의 고유 ID 도입으로 인한 스크립팅 기능과 코딩 편의성을 깨뜨 렸습니다.
Netscape Navigator 4.7이 실패한 이후 개발자들은 모두 W3C에 침투 한 반면, 직원들은 잘못된 관행과 오용 사례로 웹을 대체했습니다. ID 속성과 동등하게 이미 더 이상 사용되지 않는 Name 속성 [! 독특하지 않아야 함]을 사용하고 재사용하여 특정 DOM 요소에 액세스하기 위해 ID 핸들을 사용한 스크립트가 간단하게 중단되었습니다!
그리고 적어도 코딩을 비효율적으로 만들고 브라우저를 단순히 깨지 않았을 때 더 많은 오버 헤드를 제공하는 document.all.ElementID.property
대신 광범위한 코딩 레슨과 예제 [그들의 브라우저는 어쨌든 인식하지 못합니다]를 작성하고 게시 할 ElementID.property
때처럼 중단했습니다. (현재 [1996-97], 더 이상 사용되지 않음) 이름과 동일한 토큰 값을 제공하는 표준 ID 속성에 동일한 토큰을 사용하여 HTML 도메인.
그들은 무지한 코드 작성 아마추어의 압도적 인 군대가 이름 속성과 ID 속성이 더 짧고 따라서 바이트 이름을 절약하고 고대 이름 속성보다 코더에 더 편리하다는 점을 제외하고는 이름과 ID가 거의 동일하다는 것을 쉽게 설득 할 수있었습니다. 물론 거짓말이었다. 또는-HTML로 대체 된 게시 된 기사에서 스크립팅 엔진이 액세스 할 수 있도록 태그에 이름과 ID를 모두 제공해야하는 기사를 설득합니다.
"코드 명"Mozilla "라는 모자이크 살인자들은 너무 화가 나서"우리가 넘어지면 인터넷도 마찬가지 "라고 생각했습니다.
반면에 상승하는 Microsoft는 너무 순진하여 더 이상 사용되지 않고 삭제 Name 속성을 표시해야하며 고유 한 식별자 인 ID 인 것처럼 처리하여 스크립트 기능을 중단하지 않아야한다고 생각했습니다. Netscape 교육생이 코딩 한 이전 페이지 그들은 치명적이었다 ...
ID 충돌 요소의 배열 컬렉션을 반환하는 것은이 의도적 인 인공 문제의 해결책이 아닙니다. 실제로 그것은 모든 목적을 이겼습니다.
그리고 이것이 W3C가 추악하게 변한 유일한 이유 document.getElementById
입니다.