我最初是在寻求一种优雅的方式来模拟IE 或旧浏览器中函数Array.concat()
结果的getElementsByTagName
功能,因为它似乎concat
不受支持。只是,当然是——返回的对象不支持它的原因是因为它不是Array
. 哎呀!
getElementsByTagName
实际上返回一个NodeList
. 那么,真正的问题是:获取文档中所有表单元素(输入、选择、文本区域、按钮)的单个列表以循环遍历它们的好方法是什么?不需要数组...单个NodeList
也很完美。
请注意,我使用的是 IE6,因为这是用于公司 Intranet(不过很快会使用 IE8)。
我想出的答案是:
将代码放入一个单独的函数并使用不同的节点列表调用 3 次变得更简单,并且性能可能更好,而不是担心将它们组合在一起的好方法。
我最终转而使用 MooTools(经过几个小时阅读了所有不同框架的比较)。所以现在,获取我想要的项目数组非常简单。我建议使用这样的 javascript 框架,而不是人们绞尽脑汁试图找出做事的最佳方式。当然,我完全赞成实际学习原始语言(这就是为什么我一直推迟使用框架的原因),但这并不总是让事情顺利进行的最快方式,这在企业中通常同样重要就像提高编码员的语言能力一样。
更新:差不多 2 年后我会使用 jQuery 并完成它!