最佳做法:通过 HTML ID 或名称属性访问表单元素?
正如任何经验丰富的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)特别感兴趣。