javascriptでは、常にdocuemtn.getElementByIdを使用してDOM要素にアクセスしますが、最近、誤ってidのみを使用してアクセスし、機能しました。例:
<input id="element_id" type="text">
とjavascriptで
element_id.onclick=fun;
正しいコードですか?なぜそれが機能するのですか?(私が持っているすべてのブラウザで)
javascriptでは、常にdocuemtn.getElementByIdを使用してDOM要素にアクセスしますが、最近、誤ってidのみを使用してアクセスし、機能しました。例:
<input id="element_id" type="text">
とjavascriptで
element_id.onclick=fun;
正しいコードですか?なぜそれが機能するのですか?(私が持っているすべてのブラウザで)
はい、一部のブラウザでは、要素はIDにちなんで名付けられたグローバル変数として使用できます。
この「機能」は使用しないでください。これは非標準であり、普遍的にサポートされていません。
一部のブラウザでは動作する場合があります。たとえば、次の要素を作成する場合:
<div id="Math">I'm a math div!</div>
それが通常が返すものなので、両方Math
とwindow.Math
が返されます。(ここでChromeでテスト済み)MathConstructor {}
window.Math