dom sub(dom sub是什么意思呀)

最近有很多读者朋友和朋友交朋友dom sub有疑问。有网友整理了相关内容,希望能回答你的疑惑。dom sub是什么意思?这个网站已经为你找到了问题的答案,希望对你有所帮助。

这篇文章已经通过了原作者 Shadeed 授权翻译。

DOM 还使用术语元素(Element)它与节点非常相似。那么,DOM节点和元素有什么区别?

1. DOM节点

了解节点和元素区别的关键是了解节点是什么。

从更高的角度来看,DOM文档由节点层次结构组成。每个节点都可以有父级和/或子级。

看看下面的HTML文档:

<!DOCTYPE html><html>  <head>    <title>My Page</title>  </head>  <body>    <!-- Page Body -->    <h2>My Page</h2>    <p id="content">Thank you for visiting my web page!</p>  </body></html>

该文件包含以下节点层次结构:

dom sub(dom sub是什么意思呀)

<html>是文档树的节点。</p>  </body></html>

该文件包含以下节点层次结构:

<html>它是文档树中的一个节点。它有两个子节点:<head>和<body>。

<body>子节点有三个子节点:注释节点 <!– Page Body –>,标题<h2>,段落<p>。<body>节点的父节点是<html>节点。

    HTML文档中的标记代表一个节点,有趣的是普通文本也是一个节点。段落节点<p>有一个子节点:文本节点Thank you for visiting my web page!”。

  • 1.2节点类型
  • 如何区分这些不同类型的节点?答案在于DOM Node特别是接口Node.nodeType属性。

  • Node.nodeType具有代表节点类型的以下值之一:

  • Node.ELEMENT_NODE
  • Node.ATTRIBUTE_NODE
  • Node.TEXT_NODE
  • Node.CDATA_SECTION_NODE
  • Node.PROCESSING_INSTRUCTION_NODE

Node.COMMENT_NODE

Node.DOCUMENT_NODE

Node.DOCUMENT_TYPE_NODE

Node.DOCUMENT_FRAGMENT_NODE

Node.NOTATION_NODE

常量有意义地指示节点类型:例如Node.ELEMENT_NODE代表元素节点,Node.TEXT_NODE代表文本节点,Node.DOCUMENT_NODE以此类推,文档节点。例如,让我们选择段落节点,然后查看其nodeType属性:

const paragraph = document.querySelector('p');paragraph.nodeType === Node.ELEMENT_NODE; // => true

代表整个节点文档树的节点类型是Node.DOCUMENT_NODE:

document.nodeType === Node.DOCUMENT_NODE; // => true

2. DOM元素

掌握了DOM节点知识后,现在该区分DOM节点和元素。如果你知道节点术语,答案很明显:元素是特定类型的节点 element (Node.ELEMENT_NODE),以及文档、注释、文本等类型。

如果你知道节点术语,答案是显而易见的是特定类型的节点 element (Node.ELEMENT_NODE),以及文档、注释、文本等类型。

简而言之,使用元素HTML编写文档标记的节点。<html>,<head>,<title>,<body>,<h2>,<p>它们都是由标签表示的元素。文档类型,注释,文本节点不是元素,因为它们不使用标签写作:

Node是节点的结构函数,HTMLElement 是 JS DOM 中元素的构造函数。段落既是节点又是元素,它同时是Node和HTMLElement的实例

const paragraph = document.querySelector('p');paragraph instanceof Node;        // => trueparagraph instanceof HTMLElement; // => true

简单地说,元素是节点的子类型,就像猫是动物的子类型一样。

3. DOM属性:节点和元素

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

节点类型的以下属性被评估为节点或节点集合(NodeList):

node.parentNode; // Node or nullnode.firstChild; // Node or nullnode.lastChild;  // Node or nullnode.childNodes; // NodeList

但是,以下属性是元素或元素的集合(HTMLCollection):

node.parentElement; // HTMLElement or nullnode.children;      // HTMLCollection

由于node.childNodes和node.children返回子级列表,所以为什么要同时具备这两个属性呢?好问题!好问题!

考虑以下段落元素:

<p>  <b>Thank you</b> for visiting my web page!</p>

打开演示,然后查看parapgraph节点的childNodes和children属性:

const paragraph = document.querySelector('p');paragraph.childNodes; // NodeList:       [HTMLElement, Text]paragraph.children;   // HTMLCollection: [HTMLElement]

paragraph.childNodes集合包括两个节点:<b>Thank you</b>,,以及for visiting my web page!文本节点!文本节点!

但是,paragraph.children集合只包括一个项目:<b>Thank you</b>。

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


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

4.总结

DOM文档是节点的分层集合,每个节点都可以有父级和/或子级。假如知道节点是什么,那么就知道了DOM很容易区分节点和元素。节点有类型,元素类型就是其中之一HTML文件中的标记表示。完~ 我是小智,我要去洗碗,下次见!作者:Shadeed 译者:前端小智 来源:dmitripavlutin原文:https://dmitripautin.com/dom-node-element/

主题测试文章,只做测试使用。发布者:艾迪号,转转请注明出处:https://www.cqaedi.cn/baike/39456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年 1月 11日 上午3:12
下一篇 2023年 1月 11日 上午4:27

相关推荐

  • 微起名网免费取名(取微名称大全)

    新生儿的名字除了要有父母满意的寓意,还需要做到让大家都感受到的好听。以下是准备的2021新生男女宝宝好听的名字大全,不妨来借鉴一二。 新生儿取名 好听的男孩女孩名字大全   新生儿取名女孩 好听的女孩名字大全   昕然、育霞、曦涟、冰琼、   珊慧、安玥、羽光、宸佳、   希萱、凝璟、新芯、婉诗、   茜庆、颖晓、琳素、夜霞、   婷弈、诗敏、莉婧、芳语、 …

    2023年 5月 6日
    00
  • 苹能组成什么词苹能组成什么词语

    1、苹能组成什么词 苹能组成什么词?这是一个有趣的问题。我们都知道,苹果是一种常见的水果,而能力则是指一个人或事物所具备的能够完成某项任务的能力。那么,苹能组成的词是什么呢? 我们可以组成“苹果”。苹果是一种美味可口的水果,它有很多种类,如红苹果、青苹果等。无论是生吃还是制作成各种美食,苹果都是人们喜爱的食物之一。 我们可以组成“能力”。能力是指一个人或事物…

    百科大全 2023年 9月 27日
    00
  • 大同市人口总数2022()

    最近有很多读者朋友对2022年大同市人口总数有疑问。有网友整理了相关内容,希望能回答你的疑惑。关于,这个网站已经为你找到了问题的答案,希望对你有所帮助。 大同位于山西省北部,是山西省的一个副中心城市。2020年,全市GDP总额为1369.9亿元,在山西省11个地级市中排名第八。根据第七次人口普查结果,大同市常住人口为310.56万,比第六次人口普查减少212…

    百科大全 2023年 3月 7日
    00
  • 096型核潜艇()

    最近有很多读者朋友对096型核潜艇有疑问。由部分网友整理出相关内容希望能够解答你的疑惑,关于,本站也已经为你找到了问题的答案,希望能帮助到你。 本月初,美国国防部一年一度的《中国军力报告》再次出炉,与以往一样,这份军力报告详细解读了解放军海、陆、空、战略核力量等战力的发展情况,当然也再度渲染了中国对美国造成的威胁。略有不同的是,这份报告中首次提到解放军高超音…

    2022年 12月 15日
    00
  • 密码箱怎么更换密码锁(密码箱如何换密码锁)

    如果新购买的密码箱忘记了密码,不要害怕根据原始密码更改密码。每个箱包出厂时都必须有初始码,箱包的初始密码为000。如果盒子是从某个品牌的网店购买的,密码肯定没有设置过,初始密码是000(一般工厂没有时间更改初始密码)。 如果是从实体店买的,盒子买的密码可能不是000,因为线下经销商可能已经改变了盒子的初始密码(买的时候需要问)。第一步:首先将密码锁上的数字转…

    2023年 5月 5日
    00

站长QQ

7401002

在线咨询: QQ交谈

邮件:7401002@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信