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

Why is getElementsByName only usable from document in JavaScript?

本文关键字:文档 JavaScript getElementsByName 为什么      更新时间:2023-09-26

我想这样做:

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

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

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

谢谢!

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

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

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

您可以使用表单的.elements集合来实现这个目的,它也可以通过名称来解决。

您可以直接使用document。formName (formName是您给表单的名称属性)用于获取表单,document.formName.elements用于获取集合中的元素。然后可以通过document.formName.elements.inputID

引用输入元素

根据MDN:

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

作为入口点,查找页面元素的方法来自于它。