Document和Element之间有什么关系?为什么父元素也有getElementsByTagName方法?

时间:2014-11-09 07:40:34

标签: javascript html dom

我对DocumentElement之间的关系感到非常困扰,因为我发现ul元素也可以使用getElementsByTagName方法来获取其后代。< / p>

我可以理解document对象作为Document的一个实例,具有从Document继承的那些方法。但我无法理解为什么Element的实例也有这些方法。

这些方法来自哪里? DocumentElement之间的关系是什么?

1 个答案:

答案 0 :(得分:3)

严格地说,Document.getElementsByTagNameElement.getElementsByTagName是不同的方法。但是Document和Element都有这样一个方法是有意义的:一个文件有&#34; child&#34;元素和元素也是如此。

要回答更广泛的问题,DocumentElement都会从Node继承(与DocumentFragment和其他一些接口一样)。 Node定义了Document和Element共有的许多属性和方法,例如nodeTypechildNodesappendChild()。正如MDN所指出的那样,&#34;这些接口可能在方法和属性不相关的特定情况下返回null,&#34;所以例如document.parentNode返回null。但事实证明,您的示例getElementsByTagName并未由Node定义 - 它由Document和Element分别定义。

为了理解DOM,MDN(所有上述链接都是领导者)是你最好的朋友。它不仅会告诉您每种属性和方法的用途,还会告诉您它所定义的接口。