getElementByid return 是一个节点列表吗?

Does getElementByid return a NodeList?

我知道这是一个简单的问题,但我们都必须从某个地方开始..

我找不到答案,所以我来了。

document.getElementsByClassName(); 要么 document.getElementsByTagName();

return 节点列表。

意味着如果你想访问元素节点,你必须使用引用 NodeList 中该特定节点的索引来访问它

例如:

HTML

<div id="div1"> <p> some text in here</p> </div>

<div id="div2"> <p> some text in here</p> </div>

<div id="div3"> <p> some text in here</p> </div>

JAVASCRIPT

var x = document.getElementsByTagName("div")[0];

//returns div1

现在您可以将属性和方法应用于对象节点。

但是,如果你要使用

document.getElementByid("div1");

不是 return 具有单个单元格的 NodeList。

而是 return 对象节点 div1 本身!

因此不需要document.getElementByid("div1")[0];

这是正确的吗?

是的,你是对的。 return 值是对 Element 对象的引用,如果具有指定 ID 的元素不在文档中,则为 null。

为什么?因为 ID colud 在文档中只出现一次或零次,所以只有一个(如果 ID 存在)元素将 return.