Як знає будь-який досвідчений розробник 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 або атрибут імені (наявність обох дещо зайва, особливо якщо ідентифікатор не потрібен жодному css та збільшує ймовірність помилок друку тощо).
[2], здається, найбільш інтуїтивно зрозуміло, і воно, здається, широко використовується, але я не бачив, щоб на нього згадувалося в документації про Gecko, і я переживаю як про сумісність вперед, так і про сумісність браузера (і, звичайно, хочу бути якомога більше відповідають стандартам).
То яка найкраща практика тут? Чи може хтось вказати на щось у документації DOM або специфікації W3C, що могло б це вирішити?
Примітка Мене спеціально цікавить небібліотечне рішення (jQuery / Prototype).