Frage

Diese Frage könnte dumm erscheinen, aber was ist der Unterschied zwischen einem Element zugreift (mit der ID „someId“) mit document.getElementById ( „someId“) Vs. einfach mit der Eingabe someId?

Beispiel:

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

vs

someId.style.top = "12px";

Hier ist ein Beispielcode http://jsfiddle.net/pRaTA/ (ich fand, dass es doesn‘ t Arbeit in Firefox)

War es hilfreich?

Lösung

Der Unterschied ist, dass während someId funktioniert in einigen Browsern, document.getElementById("someId") tatsächlich erfüllt mit dem W3C-Standard.

Andere Tipps

ein Element DOM id Deklarieren bedeutet nicht, es als eine globale Variable in allen Browsern verfügbar ist. Der einzige Quer kompatibel Weg, das zu erhalten, ist zuerst tun.

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

Edit: Ich habe diesen Test-Code, der prüft, ob die Browser WebKit basiert scheinen die ID verfügbar als var zu machen, ohne sie vorher zu erklären. Nach dieser zeigen IE wird auch dieses Verhalten .

  • Firefox: Objekt / undefined
  • Safari: Objekt / object
  • Chrome: Objekt / object
  • IE: Objekt / object (ungeprüfte)

Code:

 <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>

Im Client-Side-Scripting, tun wir document.getElementById das Element obj in der Web-Seite zu bekommen. Um das besondere Element aus dem DOM und seine Eigenschaften und Methoden abzurufen, müssen Sie die getElementById-Methode verwenden. In JQuery können Sie einfach tun var objX = $ ( '# id')

Wo, wie das Schreiben id gerade nach unten wird den Job nicht machen. Denn wie Sie das Element obj aus dem DOM extrahieren, ohne das Dokument durchläuft. document.getElementById Verfahren wird das Element Informationen aus dem Dokument ziehen. Ich hoffe, das einen Sinn machen.

Mit nur die someId ist eine alte Art und Weise ein Element der Auswahl (ich denke, das durch IE umgesetzt wurde). document.getElementById ist der Standard ein, die auf allen Browsern funktioniert.

In Anbetracht das Szenarios, dass Sie nur den alten IE-Browser unterstützen. document.getElementById ist noch zuverlässiger und lesbar. Zuverlässig, wenn Sie alle Zahlen für IDs verwenden.

Beispiel:

input element id="123"

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

nach der ID des Elements genannten Elemente als Eigenschaften des globalen Objekts Zugriff (Ihr zweites Beispiel) ist eine Bequemlichkeit, die in IE entstanden und wurde von Safari und Chrome kopiert. Es ist eine wirklich schlechte Idee, und Sie sollten es nicht verwenden. Das Hauptproblem ist Namenskollisionen (zB Elemente mit absolut gültigen IDs wie „Alarm“ oder „Dokument“).

document.getElementById(), auf der anderen Seite, ist seit langem etablierter DOM-Standard und abgesehen von einige idiotische IE Fehler , ist narrensicher. verwenden Sie es immer bevorzugt gegenüber der anderen Form.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top