2012-12-03 2 views
0

가능한 중복 :
IE/Chrome: are DOM tree elements global variables here?id 속성

설명

:

안녕이 난 그냥 눈치가 난에 ID를 사용하는 경우 그 후에는 글로벌 변수로 사용할 수있는 양식 . 필자는 Mac에서 Firefox 17.0과 Google Chrome 23.0을 테스트했습니다. 내가 이것을 보았을 때 나는 다소 놀랐다!

HTML 코드 :

<form class="input-form" id="test"> 
     <label for="key">Key</label> 
     <input type="text" name="key"> 
</form> 

질문 :

이이 실제로에서에서의 id를 사용하는 아주 나쁜 생각을 의미 하는가 아니면 내가 완전히 잘못입니까? 사전에

감사합니다.

+2

나는 이것이 ID를주는 요소에 대해 일어난다 고 생각한다 - 피할 수있는 방법은 없다. 단지 전역 변수를 사용하여 그 요소를 참조하지 않도록하라 - getElementById가 무엇을위한 것인가? . [관련 질문] (http://stackoverflow.com/questions/6381425/should-the-id-of-elements-be-made-global-variables-and). – jbabey

+1

여기에 대한 답변입니다 : [DOM 트리 요소 전역 변수는 여기에 있습니까?] (http://stackoverflow.com/questions/3434278/ie-chrome-are-dom-tree-elements-global-variables-here) –

+0

감사합니다 두 대답 모두 매우 유용합니다. 그게 내가 stackoverflow을 좋아하는 이유! – Playerwtf

답변

1

브라우저 콘솔에서 사용할 수 있다는 의미라면 괜찮습니다. 그것은 단지 브라우저가 쓰는 고통을 덜어주기위한 것입니다. document.getElementById('test'). 적어도 Chrome에서는 그렇습니다. Chrome 콘솔 (예 :이 페이지)을 열고 '사이드 바'를 입력하고 Enter 키를 누르면 ID가 '사이드 바'인 div가 반환됩니다.

직접 질문에 대답하려면 : 그 문제에 대한 양식 (또는 다른 노드)에서 ID를 사용하는 것은 완전히 정상입니다.

+0

네 말이 맞아, 나는 실제로 콘솔에서 'test'와 window.test와 같은 것을 시도했다. – Playerwtf

0

귀하의 양식이 본문의 직접적인 자녀 인 경우 정상입니다. 예 :

<body> 
<form id="myForm" > 
    <input type="file"/> 
    <div> 
     <form id="myForm2" > 
      <input type="text" /> 
     </form> 
    </div> 
</form> 
</body> 

myForm을 전역 변수로 사용할 수 있습니다. 그러나 myForm2는 사용할 수 없습니다.

+0

양식 중첩은 어쨌든 좋은 생각이 아닙니다. – Playerwtf