5

有人可以了解为什么使用NAME与表单元素进行交互已经过时并document.getElementById接管的历史/原因。

历史上究竟发生了什么促使这种变化和转变。

最后,是否发生了转变,或者两者仍然是推荐的做事方式?

Document.getElementById vs  document.form.name

根据一些论坛讨论,并非所有浏览器都识别 document.form.name。是这样吗?看:

"I've been told in the past that you should not use "document.form_name.element_name" compared to "document.getElementById()", as the first is not recognized by all browsers. "
4

2 回答 2

3

该属性NAME不一定是唯一的。例如,单选按钮按具有相同的名称进行分组。调用getElementByName将返回集合中的所有按钮。ID是独一无二的。因此,要回答您的问题,每个人都有自己的位置。

于 2013-04-13T01:46:23.743 回答
1

name当作为document.forms[name].element[name]. IE 5.5、Firefox 0.8、Opera 5、Navigator 4 等都支持它。它已经过时了,因为 jQuery 的简单性让人忘记了它。

但是如果一个input元素与对象上的一个属性同名form,那么访问它可能不起作用:例如,

<form name="hi" action="/go"><input name="action" value="world">

应该document.hi.action给你“/go”还是“[Input value=world]”?

于 2013-04-13T02:09:55.193 回答