Comme le sait tout développeur JavaScript chevronné, il existe de nombreuses (trop nombreuses) façons de faire la même chose. Par exemple, disons que vous avez un champ de texte comme suit:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Il existe de nombreuses façons d'y accéder en JavaScript:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
Les méthodes [1] et [3] sont bien documentées dans la documentation de Mozilla Gecko, mais aucune n'est idéale. [1] est tout simplement trop général pour être utile et [3] nécessite à la fois un identifiant et un nom (en supposant que vous afficherez les données dans un langage côté serveur). Idéalement, il serait préférable de n'avoir qu'un attribut id ou un attribut name (avoir les deux est quelque peu redondant, surtout si l'id n'est pas nécessaire pour un css, et augmente la probabilité de fautes de frappe, etc.).
[2] semble être le plus intuitif et il semble être largement utilisé, mais je ne l'ai pas vu référencé dans la documentation de Gecko et je m'inquiète à la fois de la compatibilité ascendante et de la compatibilité entre navigateurs (et bien sûr je veux être conforme aux normes).
Alors, quelle est la meilleure pratique ici? Quelqu'un peut-il indiquer quelque chose dans la documentation DOM ou dans la spécification W3C qui pourrait résoudre ce problème?
Remarque Je suis spécifiquement intéressé par une solution non-bibliothèque (jQuery / Prototype).