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