Как знает любой опытный разработчик JavaScript, есть много (слишком много) способов сделать то же самое. Например, скажем, у вас есть текстовое поле следующим образом:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Есть много способов получить доступ к этому в JavaScript:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
Методы [1] и [3] хорошо документированы в документации Mozilla Gecko, но ни один из них не идеален. [1] является слишком общим, чтобы быть полезным, а [3] требует и идентификатор, и имя (при условии, что вы будете публиковать данные на языке сервера). В идеале было бы лучше иметь только атрибут id или атрибут name (наличие обоих является несколько избыточным, особенно если идентификатор не нужен для какого-либо CSS, и увеличивает вероятность опечаток и т. Д.).
[2] кажется наиболее интуитивно понятным и широко используемым, но я не видел, чтобы на него ссылались в документации Gecko, и меня беспокоит как прямая совместимость, так и кросс-браузерная совместимость (и, конечно, я хочу быть насколько это возможно в соответствии со стандартами).
Так что же лучше здесь делать? Может кто-нибудь указать на что-то в документации DOM или спецификации W3C, что может решить эту проблему?
Примечание. Меня особенно интересует небиблиотечное решение (jQuery / Prototype).