Как известно любому опытному разработчику 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).