文档对象模型 DOM


前言:DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口,在 HTML DOM 中定义了访问和操作 HTML 文档的标准方法,并且 DOM 通过树结构表达 HTML 文档。

一、DOM 是什么?

DOM 全称是 Document Object Model ,通过 DOM 可以把一个文档看作成一棵树,也就是我们常说的 DOM 树,而节点相当于文档树上的树枝和树叶。

  • Document 文档,当创建了一个网页并把它加载到 Web 浏览器中时,DOM 就在自动生成,把编写的网页文档转换为一个文档对象;
  • Object 对象,是一种自足的数据集合,与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个特定对象去调用的函数被称为这个对象的方法;
  • Model 模型,某种事物的表现形式。

Document 文档:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Demo</title>
  </head>
  <body>
    <h1>标题一</h1>
    <p title="p-style">段落1</p>
    <ul class="ul-list">
      <li>列表1</li>
      <li>列表2</li>
      <li>列表3</li>
    </ul>
  </body>
</html>

Model 模型图:
在这里插入图片描述


二、DOM 中的节点

文档是由节点构成的集合,在节点中又包含了许多不同类型的节点。

1.常见的节点类型

  • 元素节点(element node)
    DOM的原子是元素节点。例如刚刚的 Demo 文档中,使用到的 head、body、h1 等标签均属于元素节点;元素可以包含其它的元素;唯一没有被包含在其他元素里的元素是 html 元素,它是节点树的根元素。
  • 文本节点(text node)
    在刚刚的例子中,h1 元素包含着文本 “标题一” ,这里的文本就是文本节点。
  • 属性节点(attrbute node)
    属性节点用来对元素作出更具体的描述。例如,几乎所有的元素都有一个 title 属性;属性节点总是被包含在元素节点中

2.节点操作

1.增

  • createElement():创建元素节点。

  • createTextNode():创建文本节点。

  • insertBefore():插入节点。

2.删

  • removeChild():删除节点。

3.查

  • getElementById(id):根据 id 名去查找,返回节点对象

  • getElementsByTagName(tag):根据标签名去查找,返回节点对象数组

  • getElementsByClassName(class):根据 class 名去查找,返回节点对象数组

  • childNode:访问子节点

  • parentNode:访问父节点

三、获取和设置属性

由于这里介绍到的 getAttribute 和 setAttribute 方法不属于 document 对象,所以不能通过 document 对象调用,只能通过元素节点对象调用

1.获取

object.getAttribute( attribute )

attribute:打算查询的属性名。

返回值:查询的属性值。

2.设置

object.setAttribute( attribute, value )

attribute:打算设置的属性名。

value:打算设置的属性值。

返回值:undefinde

四、设置class名

方法说明
节点.classList.add(nane)增加指定的class
节点.classList.remove(name)移除指定的class

总结

本文介绍了 DOM 提供的五个方法:getElement、getElementsByTagName、getElementsByClassName、getAttribute、setAttribute,这五个方法是将要编写的许多 DOM 脚本的基石,同时也介绍了节点的增删查等相关的方法。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊小赞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值