什么是节点(好家伙,我弄懂了)

Node。文档_节点;//=true2. DOM元素

掌握了DOM节点的知识之后,是时候区分DOM节点和元素了。

如果你懂节点术语,那么答案是显而易见的:元素是特定类型的节点元素,还有文档、注释、文本等类型。

简而言之,元素是在HTML文档中使用标记编写的节点。Htmlheadtitlebodyh2p都是元素,因为它们是用标签表示的。

文档类型、注释和文本节点不是元素,因为它们不是用标签编写的:

Node是一个节点的构造函数,HTMLElement是JS DOM中一个元素的构造函数。Paragraph既是节点又是元素,是Node和HTMLElement的实例。

const paragraph=document . query selector;节点的段落实例;HTMLElement的真实段落实例;//=true简单来说,元素是节点的子类型,就像猫是动物的子类型一样。

3. DOM属性:节点和元素

除了区分节点和元素,还有必要区分只包含节点或元素的DOM属性。

节点的以下属性计算为节点或节点集合:

什么是节点(好家伙,我弄懂了)

node.parentNode//Node或null node.firstChild//Node或null Node . last child;//Node或null node.childNodes//NodeList但是,下列属性是元素或元素的集合:

node.parentElement//HTMLElement或null node.children//HTMLCollection既然node.childNodes和node.children都返回子列表,为什么要同时拥有这两个属性呢?好问题!

考虑以下包含一些文本的段落元素:

谢谢你访问我的网页!打开演示,然后查看parapgraph节点的childNodes和children属性:

const paragraph=document . query selector;paragraph.childNodes//nodelist : paragraph . children;//html collection : paragraph . child nodes集合包含2个节点:感谢、和访问我的网页!文本节点!

但是,paragraph.children集合只包含一项:谢谢。

由于paragraph.children只包含元素,所以这里没有文本节点,因为它的类型是文本,而不是元素。

有了node.childNodes和node.children,我们可以选择要访问的子节点集:所有子节点或只有子节点是元素。

4.总结

DOM是节点的分层集合,每个节点可以有一个父节点和/或一个子节点。如果知道什么是节点,就很容易知道DOM节点和元素的区别。

节点有多种类型,元素类型就是其中之一。在HTML文档中,元素由标签表示。

End ~我是小智,我要去洗碗了,下次见!

原文:https://dmitripautin.com/dom-node-element/

发表评论

Copyright 2002-2022 by 生活百科网(琼ICP备2022001899号-3).All Rights Reserved.