JavaScript系列学习笔记 —— DOM模型之Document对象
目录
一、概念详解
二、文档对象模型
三、常见的属性、方法
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对象相关推荐
- 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM
web前端教程JavaScript学习笔记 DOM一DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 ...
- JavaScript学习笔记——DOM
什么是DOM • DOM,全称Document Object Model文档对象模型. • JS中通过DOM来对HTML文档进行操作.只要理解了DOM就可以随心所欲操作WEB页面. • 文档 – 文档 ...
- JavaScript 复习之 事件模型 和 Event对象
事件模型 一.监听函数 js 有三种方法,可以为事件绑定监听函数 HTML 的 on- 属性 元素节点的事件属性,也可以指定监听函数 EventTarget.addEventListener() DO ...
- JavaScript系列学习笔记2 —— 数组Array对象
目录 一.概念与作用 二.基本结构 2.1 数组构造函数 2.2 数组字面量表示法 三.Array对象的属性和方法 3.1 Array对象的属性 3.2 Array对象的方法 四.数组元素的访问和存储 ...
- JavaScript系列学习笔记 —— 冒泡型和捕捉型事件
目录 一.事件模型 1.1 冒泡型事件(Bubbling) 1.2 捕获型事件(Capturing) 1.3 DOM标准事件模型 二.事件对象 三.注册与移除事件监听器 1.IE下注册监听器与移除监听 ...
- JavaScript系列学习笔记 —— 代码优化的8种方法
目录 一.松耦合 将JS从CSS中抽离 将CSS从JS中抽离 将JS从HTML中抽离 将HTML从JS中抽离 二.全局变量 零全局变量 单全局变量和命名空间 使用模块 三.事件处理 隔离应用逻辑 不要 ...
- JavaScript系列学习笔记 —— 正则表达式以及JS和Java的写法区别
目录 一.概念详解 二.基本结构 三.语法类型 普通字符 非打印字符 特殊字符 限定符 定位符 四.语法案例 文本验证定位符 限定符 选择匹配符 字符匹配符 五.开发时常见的正则表达式 六.JavaS ...
- JavaScript学习笔记05【高级——DOM对象】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- [JS-DOM]核心DOM模型(Document,Element,Node)
核心DOM模型: * Document:文档对象1. 创建(获取):在html dom模型中可以使用window对象来获取1. window.document2. document2. 方法:1. 获 ...
最新文章
- WINDOWS 蓝屏错误代码说明一览表
- ansible for devops读书笔记第一章
- 好久不来这里写东西了.
- 阿里云与A站在一起后,悄悄干了件大事
- 自动驾驶——模型部署的学习笔记
- server2008实验之七 利用FSRM实现文件服务器精确管理.
- c语言游戏计算器代码,C语言计算器代码.doc
- 【IP 地址 和 端口 _简介】
- J-link固件修复记录
- VMware虚拟机XP系统安装图文教程
- winEdit无法生成PDF解决方案
- 【NOIP2017提高A组集训10.25】摘Galo (树形dp)
- 阵列分组,不足数,补足
- 心里窝火无语的图片_失望无语的图片文字说说心情
- Ajax 请求中出现OPTIONS(Request Method: OPTIONS)
- linux 获得磁盘 寻道时间,Linux入门篇 —— Linux 磁盘管理之磁盘理论篇 | 七日打卡...
- 网络实验之VTP协议
- c语言写一个进出货管理,[源码和文档分享]基于C语言实现的超市管理系统
- 在TX2上编译CP2102驱动
- Chrome 91 版本新特性 91 版本发行说明
热门文章
- SSM发送手机验证码——以网建SMS为例
- swift-调用高德sdk填充行政区域,并实现区分填充区域内外点击动作
- s_axis_tvalid、s_axis_tready、m_axis_tvaild、m_axis_tready学习理解
- Unity 游戏开发笔记01
- [转载自 李国杰] 对计算机科学的反思
- Python实现九宫格小游戏破解
- 姑姑:给小学生出点口算题
- 探索PinYin4j.jar将汉字转换为拼音的基本用法
- 【项目】小帽学堂(三)
- 传统车道线检测项目学习总结(附源码,复现日志与github链接)