> 웹 프론트엔드 > JS 튜토리얼 > Node.js DOM 요소 ID는 전역 변수 _DOM입니다.

Node.js DOM 요소 ID는 전역 변수 _DOM입니다.

WBOY
풀어 주다: 2016-05-16 17:49:48
원래의
1272명이 탐색했습니다.

표준사양

HTML5 사양 문서 는 다음 두 가지 규칙 중 하나를 충족하는 요소가 있는 경우 window 객체에 해당 속성이 있어야 하며 속성 값은 이 객체입니다.

  • 요소에 ID 속성이 있는 경우 ID 속성의 속성 값이 창 개체의 속성 이름이 됩니다.
  • 요소에 name 속성이 있는 경우 name 속성의 속성 값은 창 개체의 속성 이름이 됩니다. 그러나 이 요소의 태그 이름은 a, applet, Area, embed, form, 프레임이어야 합니다. , 프레임셋, iframe, img, 객체 중 하나.

ID 속성이 "foo"인 div 요소가 포함된 페이지가 있다고 가정해 보겠습니다.

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



이러한 방식으로 위의 div 요소는 window.foo(다른 창 속성과 마찬가지로) 또는 전역 변수 foo를 통해 액세스할 수 있습니다. 예를 들어 Chrome 콘솔에서는 다음을 수행할 수 있습니다.

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

> "foo" in window
true
> ; foo



Firefox

Firefox(14) 약간 다르게 작동합니다.
코드 복사 코드는 다음과 같습니다.

> in window
false
> typeof foo // 이 전역 변수가 존재합니까?
object
//오류 콘솔은 다음 경고를 출력합니다.//전역 범위에서 ID/NAME이 참조하는 요소입니다. .
//대신 W3C 표준 document.getElementById()를 사용하세요.

> foo
[object HTMLDivElement]
//오류 콘솔에서 다음 경고를 출력합니다.// 전역 범위의 ID/NAME. 대신 W3C 표준 document.getElementById()를 사용하세요.> "foo" in window true



코드 복사 코드는 다음과 같습니다.
> "foo" in window
false
> / 이 전역 변수가 존재합니까?
object
//오류 콘솔은 다음 경고를 출력합니다.//전역 범위에서 ID/NAME이 참조하는 요소입니다.
//W3C 표준 문서를 사용합니다. 대신
> foo

[object HTMLDivElement]
//오류 콘솔은 다음 경고를 출력합니다.//전역 범위에서 ID/NAME이 참조하는 요소입니다.
//W3C 표준 문서를 사용합니다. () 대신.> true 창의 "foo"

무슨 일이 일어나고 있나요? 초기화되면 창에 foo 속성이 없습니다. 하지만 이 속성에 처음으로 액세스하면(window.foo 속성을 통해 직접 또는 전역 변수 foo를 통해) 자동으로 액세스됩니다.


번역가의 메모: Firefox14, 15, 18에서는 경고를 발견하지 못했지만, Firefox12를 테스트할 때 실제로 경고가 있었습니다.


Node.js DOM 요소 ID는 전역 변수 _DOM입니다.

[참고: 예제의 코드는 웹 페이지의

script 태그를 통해 실행될 때만 유효하며 터미널에서는 전역을 처리할 때 다른 방법을 사용하기 때문입니다. 물체.]

번역자 주: 예제의 코드를 Firebug에서 시도했지만 아무런 차이를 찾지 못했습니다.

foo의 값을 읽으려고 하면 div 요소가 정상적으로 반환되지만 오류 콘솔에는 그렇게 하면 안 된다는 경고가 표시됩니다. 경고가 맞습니다: 이 기능은 터미널에서 디버깅할 때 사용할 수 있지만 실제 코드에서는 사용하면 안 됩니다.

Cody Lindley는

jsPerf 테스트를 작성하여 전역 변수를 통해 foo에 액세스하는 window.foo를 통해 foo의 성능 차이. 흥미롭게도 Firefox에서는 window.foo에만 액세스하는 것이 더 빠릅니다.

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