Wie jeder erfahrene JavaScript-Entwickler weiß, gibt es viele (zu viele) Möglichkeiten, dasselbe zu tun. Angenommen, Sie haben ein Textfeld wie folgt:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Es gibt viele Möglichkeiten, in JavaScript darauf zuzugreifen:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
Die Methoden [1] und [3] sind in der Mozilla Gecko-Dokumentation gut dokumentiert, aber beide sind nicht ideal. [1] ist einfach zu allgemein, um nützlich zu sein, und [3] erfordert sowohl eine ID als auch einen Namen (vorausgesetzt, Sie veröffentlichen die Daten in einer serverseitigen Sprache). Im Idealfall ist es am besten, nur ein ID-Attribut oder ein Namensattribut zu haben (beides ist etwas redundant, insbesondere wenn die ID für kein CSS erforderlich ist und die Wahrscheinlichkeit von Tippfehlern usw. erhöht).
[2] scheint am intuitivsten zu sein und es scheint weit verbreitet zu sein, aber ich habe nicht gesehen, dass in der Gecko-Dokumentation darauf verwiesen wird, und ich mache mir Sorgen um die Vorwärtskompatibilität und die Cross-Browser-Kompatibilität (und natürlich möchte ich das auch so standardkonform wie möglich).
Was ist hier die beste Vorgehensweise? Kann jemand auf etwas in der DOM-Dokumentation oder der W3C-Spezifikation verweisen, das dies beheben könnte?
Hinweis Ich bin speziell an einer Nicht-Bibliothekslösung (jQuery / Prototype) interessiert.