DOM 增删改查

什么是DOM

文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且定义了一种方式—程序可以对结构树进行访问,以改变文档的结构,样式和内容。 DOM 提供了一种表述形式— 将文档作为一个结构化的节点组以及包含属性和方法的对象。从本质上说,它将 web 页面和脚本或编程语言连接起来了。

  • 理解DOM结构

DOM: Document Object Module, 文档对象模型。我们通过JavaScript操作页面的元素,进行添加、移动、改变或移除的方法和属性, 都是DOM提供的。DOM把一份文档表示为一棵树,是由节点(node)构成的一棵节点树。

  • DOM节点

    根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:

  • 整个文档是一个文档节点

  • 每个 HTML 元素是元素节点

  • HTML 元素内的文本是文本节点

  • 每个 HTML 属性是属性节点

  • 注释是注释节点

  • 节点信息:nodeName(tagName)、nodeValue、nodeType.

    • nodeName
      • 元素节点的nodeName是标签名称
      • 属性节点的nodeName是属性名称
      • 文本节点的nodeName是#text
      • 文档节点的nodeName是#document
    • nodeValue
      • 文本节点的nodeValue包含文本
      • 属性节点的nodeValue包含属性值
      • 元素节点和文档节点没有nodeValue
    • nodeType
元素类型 节点类型
元素 1
属性 2
文本 3
注释 8
文档 9
  • HTML DOM 节点树

HTML文本会被解析为DOM树, 树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。


DOM操作

方法 功能
.createElement() 创建元素
.createTextNode() 创建文本
.createComment() 创建注释节点
.createDocumentFragment() 创建一个新的空的文档片段
.insertBefore() 在当前节点的某个子节点之前再插入一个子节点
方法 功能
.removeChild() 剪切, 返回删除的节点
.remove() 删除的节点
方法 功能
.innerHTML 改变 HTML 内容
.replaceChild() 替换子节点(new//新的, origin//老的)
. setAttribute() 设置属性
方法 功能
.getElementById() 返回指定 id 属性值的节点对应的对象
.getElementsByTagName() 返回一个对象数组,每个对象对应着这个标签的一个元素
.getElementsByClassName() 返回一个具有相同类名的元素的数组
.getAttribute() 查询属性节点
.childNodes 获取任何一个元素的所有子元素

推荐阅读更多精彩内容

  • 节点的增删改查 HTML的每个成分都可以看作是节点(文档节点、元素节点、文本节点、属性节点、注释节点,其中,属性节...
    柳叁叁阅读 249评论 0 0
  • 本章内容 理解包含不同层次节点的 DOM 使用不同的节点类型 克服浏览器兼容性问题及各种陷阱 DOM 是针对 HT...
    闷油瓶小张阅读 517评论 0 1
  • 要进行DOM的增删改查的操作,首先要先搞懂: 什么是dom? Document Object Model,即文档对...
    饥人谷_Dylan阅读 1,700评论 0 50
  • 20170601 今天是儿童节,昨天妈妈问你,是否需要我休假,咱两一起出去玩,你对我说不要,你要做功课 晚上接到你...
    春芸1216阅读 143评论 0 4
  • 最近在学习swift3.0 遇到了 修改函数参数时会报'xxx' is a 'let' constant的问题 解...
    JokAr_阅读 747评论 0 0