2016-03-09 3 views
5

JavaScriptは各HTML要素を要素のIDであるグローバル変数として表しますか?HTML要素はJavaScriptでグローバル変数として表されます。

だが、私はこのような非表示の入力要素を持っているとしましょう:

<input type="hidden" value="10" id="myInput" /> 

ので、私はJavaScriptでそれにアクセスすることができます。

console.log(myInput.value); 

私はChromeとFirefoxでそれを試みたが、それは私のために働きました。

私の質問は:

  • はJavaScriptで新しいこの問題ですか?
  • IDで要素を取得するのがベストプラクティスですか?
  • グローバル変数を使用するのがベストプラクティスではありませんが、なぜこの機能を実装していますか?

答えて

4

これはnamed accessと呼ばれます。 idがanのすべての要素は、グローバルスコープで参照されます。それはwindow objectです。それを使用するのは良い方法ではありませんが、HTML5で標準化されています。あなたはhideのようにグローバルスコープで変数を宣言し、またあなたがidhideであなたのdocumentelementを持っている場合は

、その使用のための簡単な競合の場合は、

です。その要素参照は、global variableによって上書きされます。その時点で、イベントハンドラやどこかでそれを使用すると(element参照)、エラーになります。

関連する問題