文档和元素之间的关系是什么?为什么父元素也有getElementsByTagName方法
What is the relationship between Document and Element? Why does a parent element also have getElementsByTagName method?
自从我发现ul
元素也可以使用getElementsByTagName
方法来获取其子元素以来,我一直对Document
和Element
之间的关系感到非常困扰。
我可以理解,document
对象作为Document
的实例,具有继承自Document
的那些方法。但我不明白为什么Element
的一个实例也有这些方法。
这些方法来自哪里?Document
和Element
之间有什么关系?
严格来说,Document.getElementsByTagName
和Element.getElementsByTagName
是不同的方法。但Document和Element都有这样一个方法是有意义的:文档有"子"元素,元素也有。
为了回答您更广泛的问题,Document和Element都继承自Node(DocumentFragment和其他一些接口也是如此)。Node定义了许多Document和Element通用的属性和方法,例如nodeType
、childNodes
和appendChild()
。正如MDN所指出的,"在方法和属性不相关的特定情况下,这些接口可能会返回null",例如document.parentNode
返回null
。但事实证明,您的示例getElementsByTagName
不是由Node定义的,而是由Document和Element分别定义的。
为了理解DOM,MDN(上面所有链接的指向)是您最好的朋友。它不仅会告诉你每个属性和方法的用途,还会告诉你它在哪个接口中定义。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 在动态创建的元素上获取对特定选择器的引用
- 根据元素和容器大小计算边距