目录

一、概念详解

二、文档对象模型

三、常见的属性、方法

Document属性

Document方法

四、元素节点的操作

访问元素节点

创建元素节点


一、概念详解

Document(文档)是浏览器为每个打开的HTML页面创建的对象,该对象是浏览器Window(窗口)对象的子对象。因此,Window对象中的方法和子对象不需要是同Window来引用。

Document对象是HTML文档的根节点,使我们可以访问HTML文档中的所有元素,并可以动态地添加、删除、修改或者查询HTML元素或内容等操作。

二、文档对象模型

文档对象模型(Document Object Model,简称DOM)允许JavaScript访问浏览器中的文档结构。由结构化节点组成,例如body标记是一个节点,而body元素内的任何元素都是body元素的子节点。采用这种结构,脚本语言可以通过多种方式访问文档中的元素,并对文档内的元素进行修改。

例如下面的HTML文档结构

<html><head><meta charset="UTF-8"><title>DOM对象节点</title></head><body><h1>标准DOM</h1><p>这是一份简单的<strong>文档对象模型</strong></p><ul><li>D表示文档,DOM的物质基础</li><li>O表示对象,DOM的思想基础</li><li>M表示模型,DOM的方法基础</li></ul></body>
</html>

可以通过下面的关系图来形象的表示

元素h1、p、ul都是body元素的子节点。这三个元素也都有各自的节点。元素h1包含了一个文本节点(文本“标准DOM”)作为它的字节。常见节点分为根节点(Document)、根元素节点(html)、元素节点(HTML元素节点)、属性节点(元素属性)、文本节点(文本内容)、空格节点和注释节点等。

脚本可以通过Document对象来添加、删除、修改或访问DOM中的这些节点。详细的操作将在下面详细的讲解。总的来说通过DOM模型,我们可以改变页面中的所有 HTML元素、HTML属性、HTML文本、CSS样式、添加事件并作出反应等。

三、常见的属性、方法

3.1 Document属性

属性

描述

title

返回当前文档的标题。

body

回文档的body元素

domain

返回当前文档的域名。或返回数组对象的长度。

URL

返回文档完整的URL

baseURI

返回文档的绝对基础 URI

inputEncoding

返回文档的编码方式(在解析时)。

cookie

返回或设置文档中的cookie值

3.2 Document方法

方法

描述

createElement()

创建元素节点。

createAttribute()

创建一个属性节点

createTextNode()

创建文本节点。

getElementById()

返回指定 id 的第一个对象。

getElementsByClassName()

返回指定类名的元素集合。

getElementsByTagName()

返回指定标签名的对象集合。

getElementsByName()

返回带有指定名称的属性的对象集合。

normalize()

删除空文本节点,并连接相邻节点

addEventListener()

返回对创建此对象的数组函数的引用。

removeEventListener()

移除文档中的事件句柄(由 addEventListener() 方法添加)

document.open()

打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。

document.write()

向文档写 HTML 表达式 或 JavaScript 代码。

document.writeln()

等同于 write() 方法,不同的是在每个表达式之后写一个换行符。

警告 !!!

在W3C DOM核心,文档对象继承节点对象的所有属性和方法。很多属性和方法在文档中是没有意义的。

四、元素节点的操作

4.1 访问元素节点

想要多某个元素进行操作,只有先找到该元素才能对其进行操作。所以,访问元素是最基础的操作。访问指定元素的方式有以下几种:

1、getElementById(elementId)方法

该方法通过指定元素的id属性值来访问元素,最终返回一个节点对象。

    //HTML元素结构为<div id="divObj"></div>//JavaScript代码var x = document.getElementById("divObj")

上述代码的意思是:从HTML文档中访问元素id属性为divObj的第一个节点,并将最终的访问结果赋值给变量x

2、getElementsByClassName(className)方法

该方法通过指定元素的class属性值来访问元素,最终返回一个数组。

    //HTML元素结构为<div class="divList"></div><div class="divList"></div>//JavaScript代码var x = document.getElementsByClassName("divObj")

上述代码的意思是:从HTML文档中访问元素class属性为divList的所有节点,并将最终的访问结果赋值给数组x

3、getElementsByTagName(tagName)方法

该方法通过指定元素的标签名来访问元素,最终返回一个数组。

    //HTML元素结构为<div></div>//JavaScript代码var x = document.getElementsByTagName("div")

上述代码的意思是:从HTML文档中访问元素名为div的所有节点,并将最终的访问结果赋值给数组x

4、getElementsByName(name)方法

该方法通过指定元素的name属性值来访问元素,最终返回一个数组。

    //HTML元素结构为<input type="button" name="Test" value="按钮" /><div name="Test"></div>//JavaScript代码var x = document.getElementsByName("Test")

上述代码的意思是:从HTML文档中访问元素name属性值为div的所有节点,并将最终的访问结果赋值给数组x

4.2 创建元素节点

想要创建一个新的节点,可以通过使用文档对象中的createElement方法和createTextNode方法来创建一个新的元素,并将新的元素插入到指定节点中。

//在文档中创建div元素
var newElement = document.createElement("div");
//为该div元素添加id属性,其值为Test
newElement.id = "Test";
//在文档中创建文本元素,内容为LaoYe
var newText = document.createTextNode("LaoYe");
//为新的div元素添加文本节点,该节点是新建的文本元素
newElement.appendChild(newText);
//为文档的body节点添加元素节点,该节点是新建的div元素
document.body.appendChild(newElement);

JavaScript系列学习笔记 —— DOM模型之Document对象相关推荐

  1. 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM

    web前端教程JavaScript学习笔记 DOM一DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 ...

  2. JavaScript学习笔记——DOM

    什么是DOM • DOM,全称Document Object Model文档对象模型. • JS中通过DOM来对HTML文档进行操作.只要理解了DOM就可以随心所欲操作WEB页面. • 文档 – 文档 ...

  3. JavaScript 复习之 事件模型 和 Event对象

    事件模型 一.监听函数 js 有三种方法,可以为事件绑定监听函数 HTML 的 on- 属性 元素节点的事件属性,也可以指定监听函数 EventTarget.addEventListener() DO ...

  4. JavaScript系列学习笔记2 —— 数组Array对象

    目录 一.概念与作用 二.基本结构 2.1 数组构造函数 2.2 数组字面量表示法 三.Array对象的属性和方法 3.1 Array对象的属性 3.2 Array对象的方法 四.数组元素的访问和存储 ...

  5. JavaScript系列学习笔记 —— 冒泡型和捕捉型事件

    目录 一.事件模型 1.1 冒泡型事件(Bubbling) 1.2 捕获型事件(Capturing) 1.3 DOM标准事件模型 二.事件对象 三.注册与移除事件监听器 1.IE下注册监听器与移除监听 ...

  6. JavaScript系列学习笔记 —— 代码优化的8种方法

    目录 一.松耦合 将JS从CSS中抽离 将CSS从JS中抽离 将JS从HTML中抽离 将HTML从JS中抽离 二.全局变量 零全局变量 单全局变量和命名空间 使用模块 三.事件处理 隔离应用逻辑 不要 ...

  7. JavaScript系列学习笔记 —— 正则表达式以及JS和Java的写法区别

    目录 一.概念详解 二.基本结构 三.语法类型 普通字符 非打印字符 特殊字符 限定符 定位符 四.语法案例 文本验证定位符 限定符 选择匹配符 字符匹配符 五.开发时常见的正则表达式 六.JavaS ...

  8. JavaScript学习笔记05【高级——DOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. [JS-DOM]核心DOM模型(Document,Element,Node)

    核心DOM模型: * Document:文档对象1. 创建(获取):在html dom模型中可以使用window对象来获取1. window.document2. document2. 方法:1. 获 ...

最新文章

  1. WINDOWS 蓝屏错误代码说明一览表
  2. ansible for devops读书笔记第一章
  3. 好久不来这里写东西了.
  4. 阿里云与A站在一起后,悄悄干了件大事
  5. 自动驾驶——模型部署的学习笔记
  6. server2008实验之七 利用FSRM实现文件服务器精确管理.
  7. c语言游戏计算器代码,C语言计算器代码.doc
  8. 【IP 地址 和 端口 _简介】
  9. J-link固件修复记录
  10. VMware虚拟机XP系统安装图文教程
  11. winEdit无法生成PDF解决方案
  12. 【NOIP2017提高A组集训10.25】摘Galo (树形dp)
  13. 阵列分组,不足数,补足
  14. 心里窝火无语的图片_失望无语的图片文字说说心情
  15. Ajax 请求中出现OPTIONS(Request Method: OPTIONS)
  16. linux 获得磁盘 寻道时间,Linux入门篇 —— Linux 磁盘管理之磁盘理论篇 | 七日打卡...
  17. 网络实验之VTP协议
  18. c语言写一个进出货管理,[源码和文档分享]基于C语言实现的超市管理系统
  19. 在TX2上编译CP2102驱动
  20. Chrome 91 版本新特性 91 版本发行说明

热门文章

  1. SSM发送手机验证码——以网建SMS为例
  2. swift-调用高德sdk填充行政区域,并实现区分填充区域内外点击动作
  3. s_axis_tvalid、s_axis_tready、m_axis_tvaild、m_axis_tready学习理解
  4. Unity 游戏开发笔记01
  5. [转载自 李国杰] 对计算机科学的反思
  6. Python实现九宫格小游戏破解
  7. 姑姑:给小学生出点口算题
  8. 探索PinYin4j.jar将汉字转换为拼音的基本用法
  9. 【项目】小帽学堂(三)
  10. 传统车道线检测项目学习总结(附源码,复现日志与github链接)