質問

この質問はばかげているように見えるかもしれませんが、document.getElementByID( "someid")vsを使用して、要素( "someid"を使用)にアクセスすることの違いは何ですか。 someidを入力するだけですか?

例えば:

document.getElementById("someId").style.top = "12px";

vs

someId.style.top = "12px";

これがサンプルコードです http://jsfiddle.net/prata/ (Firefoxでは機能しないことがわかりました)

役に立ちましたか?

解決

違いは、その間です someId 一部のブラウザで動作します、 document.getElementById("someId") 実際、W3C標準に準拠しています。

他のヒント

要素DOM IDを宣言することは、すべてのブラウザでグローバル変数として利用可能であるという意味ではありません。それを得るための唯一のクロス互換の方法は、最初に行うことです。

var someId = document.getElementById("someId");

編集: このテストコードを作成しました。これは、WebKitベースのブラウザが最初に宣言せずにIDをVARとして利用できるように見えることを確認します。によると これ, 、また、IEはこの動作を示します。

  • Firefox:オブジェクト/未定義
  • Safari:オブジェクト/オブジェクト
  • Chrome:オブジェクト/オブジェクト
  • IE:オブジェクト/オブジェクト (未検証)

コード:

 <html>
    <head>
    </head>
 <body>
   <div id="foo"></div>
   <script type="text/javascript">

     alert("getElementById: "+typeof document.getElementById("foo"));
     alert("as a var: "+typeof foo);

   </script>
 </body>

クライアントサイドスクリプトでは、document.getElementByIDを使用して、Webページで要素OBJを取得します。 DOMとそのプロパティとメソッドから特定の要素を取得するには、GetElementByIDメソッドを使用する必要があります。 jqueryでは、単にvar objx = $( '#id')を行うことができます

IDストレートを書き留めても仕事はできません。なぜなら、ドキュメントを通過せずに、DOMから要素OBJをどのように抽出するからです。 document.getElementByIDメソッドは、ドキュメントから要素情報を引き出します。これが理にかなっていることを願っています。

のみを使用します someId 要素を選択する古い方法です(これはIEによって実装されたと思います)。 document.getElementByIDは、すべてのブラウザで動作する標準的なものです。

古いIEブラウザのみをサポートするシナリオを考慮してください。 document.getElementByIDはさらに信頼性が高く、読みやすいです。 IDSにすべての番号を使用している場合は信頼できます。

例えば:

input element id="123"

document.getElementById('123').value; // this one works
123.value; // this one doesn't

要素のプロパティとして要素にアクセスすると、要素のIDにちなんで名付けられたグローバルオブジェクトのプロパティ(2番目の例)は、IEで発信され、SafariとChromeによってコピーされた利便性です。それは本当に悪い考えであり、あなたはそれを使うべきではありません。主な問題は、衝突の命名です(たとえば、「アラート」や「ドキュメント」などの完全に有効なIDを持つ要素)。

document.getElementById(), 一方、長期に設定されたDOM標準であり、 いくつかのばかげたIEの欠陥, 、絶対確実です。常に他のフォームよりも好みに使用してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top