web自动化:DOM对象
1|0一. 什么是DOM对象
-
定义:DOM(Document Object Mode,文档对象模型)是一套web标准,定义了访问HTML文档的一套属性、方法和事件
-
本质:网页与脚本语言沟通的桥梁。脚本语言通过DOM对象来访问html页面,从而改变文档的结构、样式和内容
-
当浏览器载入HTML文档,它就会成为doument 对象
-
HTML DOM独立于平台和编程语言,它可被任何编程语言,如Java、JavaScript和VBScript使用
1|1二. DOM对象
1|21. 在HTML DOM中:
-
文档对象:整个HTML文档
-
节点对象:所有的HTML元素是元素节点
-
属性对象:依附于元素节点,所有节点的属性都是节点
-
文本对象:HTML元素内的文本是文本节点
1|32. 两个顶级节点:
-
Window:表示当前打开的浏览器窗口
-
Document:表示窗口中显示的当前html页面(文档)
当浏览器载入 HTML 文档, 它就会成为 Document 对象
Document 对象是HTML文档的根节点与所有其他节点(元素节点,文本节点,属性节点, 注释节点)
Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问
提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问
2|0三. HTML DOM 节点树
HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树:
通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点
3|0四. 节点的父、子、同胞关系
节点树中的节点彼此拥有层级关系,常用父(parent)、子(child)、同胞(sibling)等术语来描述这些关系:父节点拥有子节点,同级的子节点被称为同胞
-
在节点树中,顶端节点被称为根(root)
-
每个节点都有父节点、除了根(它没有父节点)
-
一个节点可拥有任意数量的子节点
-
同胞是拥有相同父节点的节点
这些关系如下图所示:
3|1五. Document 对象属性和方法
document对象的属性和方法:
属性/方法 | 描述 |
document.title | 返回当前文档的标题 |
document.URL | 返回当前文档完整的URL |
document.forms | 返回对文档中所有Form对象引用 |
document.getElementsByClassName() | 返回文档中所有指定类名的元素集合,作为NodeList对象 |
document.getElementById() | 返回对拥有指定id的第一个对象的引用 |
document.getElementsByName() | 返回带有指定名称的对象集合 |
document.getElementsByTagName() | 返回带有指定标签名的对象结合 |
document.images | 返回对文档中所有image对象引用 |
document.querySelector() | 返回文档中匹配指定的CSS选择器的第一元素 |
document.querySelectorAll() | document.querySelectorAll()是HTML5中引入的新方法,返回文档中匹配的CSS选择器的所有元素节点列表 |
3|2实例1:document.title
结果:
3|3实例2:document.URL
结果:
3|4实例3:document.forms
结果:
3|5实例4:document.getElementsByClassName()
结果:
3|6实例5:document.getElementById()
3|7实例6:document.getElementsByName()
结果:
3|8实例7:document.getElementsByTagName()
结果:
3|9实例8:document.getElementsByTagName()
结果:
3|10六. Element 对象
在HTML DOM中,元素对象:一个HTML元素,即一个HTML标签对
元素对象:
-
可以有子节点、父节点
-
可以有属性
-
有节点名称、节点类型、节点值
4|0七. Element 对象的属性和方法:
属性/方法 | 描述 |
element.attributes | 返回一个元素的属性数组 |
element.childNodes | 返回元素的一个子节点的数组 |
element.ClassName | 设置或返回元素的class属性 |
element.getAttribute() | 返回指定元素的属性值 |
element.getAttributeNode() | 返回指定属性节点 |
element.getElementsByTagName() | 返回指定标签名的所有子元素集合 |
element.getElementsByClassName() | 返回文档中所有指定类名的元素集合,作为NodelList对象 |
element.nodeName | 返回元素的标记名(大写) |
element.nodeType | 返回元素的节点类型,元素节点的nodeType属性值是1,属性节点的属性值是2,文本节点的属性值是3 |
element.nodeValue | 返回元素的节点值 |
4|1实例1:element.attributes
结果:
4|2实例2:element.childNodes, 注意:元素中的空格被视为文本,而文本被视为节点
结果:
4|3实例3:element.className
结果:
4|4实例4:element.getAttribute()
结果:
4|5实例5:element.getAttributeNode()
结果:
4|6实例6:element.getElementsByTagName()
结果:
4|7实例7:element.getElementsByClassName()
结果:
4|8实例8:element.nodeName 得到的元素节点名是大写
结果:
4|9实例9:element.nodeType
结果:
4|10实例10:element.nodeValue
结果:
5|0八. DOM事件
1. 我们可以再事件发生时执行Javascript,比如当用户在 HTML 元素上点击时
如需在用户点击某个元素时执行代码,请向一个HTML事件属性添加 Javascript 代码:
2. DOM事件分类
-
键盘事件
-
鼠标事件
-
框架/对象 (Frame/Object)事件
-
表单事件
-
拖动事件
3. HTML 事件的例子:
-
当用户点击鼠标时
-
当网页已加载时
-
当图像已加载时
-
当鼠标移动到元素上时
-
当输入字段被改变时
-
当提交 HTML 表单时
-
当用户触发按键时
4. 常用事件
-
onclick:点击事件
-
onload:加载事件
-
onmousemove:鼠标被移动
-
onmousedown:鼠标按钮被按下
-
onmouseup:鼠标按钮被松开
-
onmouseout:鼠标从某元素移开
-
onmouseover:鼠标移到某元素上
-
onsubmit:确认按钮被点击
6|0参考文章
http://www.w3school.com.cn/h.asp
http://www.runoob.com/html/html-tutorial.html
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/9156489.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?