为什么getElementsByName只能在JavaScript中的文档中使用?

时间:2014-06-23 14:42:48

标签: javascript dom getelementsbyname

我想做这样的事情:

var form = document.getElementsByTagName("form")[0];
var form_element_list = form.getElementsByName("foo");

但是,似乎getElementsByName只能从document开始运行(见MDN)。

问题:
为什么只能从文档级别进行搜索?特别是name属性主要用于表单。

谢谢!

3 个答案:

答案 0 :(得分:2)

  

为什么只能从文档级别进行搜索?

由于历史原因?我们真的不知道。但是,名称是全局标识符,就像document.getElementsById中的ID一样,只是它们不是唯一的。

  

特别是名称属性主要用于表单。

您可以使用表单.elements collection来实现此目的,也可以使用名称进行处理。

答案 1 :(得分:0)

您可以使用document.formName where(formName是您为表单提供的name属性)来获取表单,使用document.formName.elements来获取集合中的元素。然后,您可以通过document.formName.elements.inputID

引用输入元素

答案 2 :(得分:0)

根据MDN

  

浏览器中加载的每个网页都有自己的文档对象。 Document接口用作网页内容的入口点(DOM树,包括和等元素),并为文档提供全局功能(例如获取页面&#39) ; s URL和在文档中创建新元素)

由于它是一个入口点,因此查找页面元素的方法就来自它。