任何经验丰富的 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]在 MozillaGecko 文档中有详细的文档说明,但都不理想。[1]太笼统了,不太有用,而[3]需要 id 和名称(假设您要将数据发布到服务器端语言)。理想情况下,最好只有一个 id 属性或 name 属性(同时具有这两个属性是多余的,特别是在任何 css 都不需要 id 的情况下,并且增加了输入错误的可能性等)。
[2]似乎是最直观的,而且似乎被广泛使用,但我还没有在 Gecko 的文档中看到它的引用,我担心它的兼容性和跨浏览器兼容性(当然我希望尽可能符合标准)。
那么这里的最佳实践是什么?有人能指出 DOM 文档或 W3C 规范中可以解决这个问题的内容吗?
注意,我对非库解决方案(jQuery/Prototype)特别感兴趣。