跳到主要内容位置

DOM 中 Node 和 Element 类型的区别

在 DOM 中,Node 和 Element 是两个常用的类型。虽然它们都表示文档中的节点,但它们之间有一些区别。

Node 类型

Node 类型是 DOM 树中所有节点的基础类型。它有许多具体的子类型,包括 Element、Text、Comment、Document 等。Node 类型定义了节点的通用属性和方法,例如 nodeNamenodeValueparentNodeappendChild() 等等。

以下是 Node 类型的一些重要属性和方法:

  • nodeName:节点的名称。
  • nodeValue:节点的值。
  • nodeType:节点的类型,可以是元素节点、文本节点、注释节点、文档节点等。
  • parentNode:节点的父节点。
  • childNodes:节点的子节点列表。
  • appendChild():将一个节点添加到当前节点的子节点列表的末尾。

Element 类型

Element 类型表示文档中的元素节点。它是 Node 类型的子类型,因此继承了 Node 类型的所有属性和方法,同时还有一些特有的属性和方法。

以下是 Element 类型的一些重要属性和方法:

  • tagName:元素的标签名。
  • id:元素的唯一标识符。
  • className:元素的类名。
  • getAttribute():获取元素的指定属性值。
  • setAttribute():设置元素的指定属性值。

在使用 Element 类型时,您可以使用它的特有属性和方法来操作元素节点。例如,您可以使用 setAttribute() 方法来设置元素的属性,如下所示:

var element = document.createElement("div");
element.setAttribute("class", "my-class");

上面的代码创建了一个新的 div 元素,并为它设置了一个类名为 my-class 的属性。

Node 和 Element 类型的区别

尽管 Node 和 Element 类型都表示文档中的节点,但它们之间有一些重要的区别:

  1. Node 类型是 Element 类型的基础类型,因此 Element 类型继承了 Node 类型的所有属性和方法。
  2. Element 类型是 Node 类型的子类型,因此它具有一些 Node 类型没有的特定属性和方法,例如 tagNameidclassNamegetAttribute()setAttribute()
  3. Node 类型可以表示文档中的任何类型的节点,包括元素节点、文本节点、注释节点、文档节点等。而 Element 类型仅表示文档中的元素节点。
  4. 在操作 DOM 树时,Node 类型和 Element 类型有不同的用途。通常,您可以使用 Node 类型的通用属性和方法来遍历和操作 DOM 树中的节点,而使用 Element 类型的特定属性和方法来操作元素节点。
提示

一系列的课程让你成为高级前端工程师。课程覆盖工作中所有常用的知识点和背后的使用逻辑,示例全部都为工作项目简化而来,学完即可直接上手开发!

即使你已经是高级前端工程师,在课程里也可能会发现新的知识点和技巧,让你的工作更加轻松!

《React 完全指南》课程,包含 React、React Router 和 Redux 详细介绍,所有示例改编自真实工作代码。点击查看详情。

《Vue 3.x 全家桶完全指南与实战》课程,包括 Vue 3.x、TypeScript、Vue Router 4.x、Vuex 4.x 所有初级到高级的语法特性详解,让你完全胜任 Vue 前端开发的工作。点击查看详情。

《React即时通信UI实战》课程,利用 Storybook、Styled-components、React-Spring 打造属于自己的组件库。

《JavaScript 基础语法详解》本人所著图书,包含 JavaScript 全面的语法知识和新特性, 可在京东、当当、淘宝等各大电商购买