Come ogni sviluppatore JavaScript esperto sa, ci sono molti (troppi) modi per fare la stessa cosa. Ad esempio, supponi di avere un campo di testo come segue:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Esistono molti modi per accedervi in JavaScript:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
I metodi [1] e [3] sono ben documentati nella documentazione di Mozilla Gecko, ma nessuno dei due è l'ideale. [1] è troppo generico per essere utile e [3] richiede sia un ID che un nome (supponendo che pubblichi i dati in una lingua lato server). Idealmente, sarebbe meglio avere solo un attributo id o un attributo name (avendo entrambi lo è qualche modo ridondante, specialmente se l'id non è necessario per qualsiasi CSS, e aumenta la probabilità di errori di battitura, ecc.).
[2] sembra essere il più intuitivo e sembra essere ampiamente usato, ma non l'ho visto menzionato nella documentazione di Gecko e sono preoccupato sia per la compatibilità con i forward che per quella tra browser (e ovviamente voglio essere il più possibile conforme agli standard).
Quindi qual è la migliore pratica qui? Qualcuno può indicare qualcosa nella documentazione DOM o specifica W3C che potrebbe risolvere questo?
Nota Sono particolarmente interessato a una soluzione non di libreria (jQuery / Prototype).