第1章 节点概览 1
1.1 文档对象模型(Document Object Model,亦称DOM)是个由JavaScript节点对象组成的层次结构/树 1
1.2 节点对象类型 2
1.3 继承自节点对象的子节点对象 5
1.4 用于与节点打交道的属性与方法 7
1.5 识别节点的类型与名称 9
1.6 获取节点的值 11
1.7 使用JavaScript方法来创建元素与文本节点 11
1.8 使用JavaScript字符串创建并向DOM中添加元素与文本节点 13
1.9 提取DOM树中的部分作为JavaScript字符串 15
1.10 使用appendChild()与insertBefore()向DOM中插入节点对象 16
1.11 使用removeChild()与replaceChild()来移除与替换节点 18
1.12 使用cloneNode()来复制节点 20
1.13 理解节点集合(即NodeList与HTMLCollection) 21
1.14 获取所有直属子节点的列表/集合 22
1.15 将NodeList或者HTMLCollection转换成JavaScript数组 23
1.16 遍历DOM中的节点 24
1.17 使用contains()与compareDocumentPosition()验证节点在DOM树中的位置 26
1.18 判断两个节点是否相同 28
第2章 文档节点 31
2.1 文档节点概览 31
2.2 HTML文档属性与方法(包括继承的) 32
2.3 获取HTML Document通用信息(标题、链接、提及者、最后修改时间及兼容模式) 33
2.4 文档子节点 34
2.5 document提供的<!DOCTYPE>、<html lang=“en”>、<head>及<body>捷径 35
2.6 使用document.implementation.hasFeature()探测DOM规范/特性 36
2.7 获取文档中当前聚焦/激活节点的引用 37
2.8 判断文档或者文档中任何节点得到焦点 38
2.9 document.defaultView是个到顶部/全局对象的捷径 39
2.10 使用ownerDocument从某一元素取得文档的引用 39
第3章 元素节点 41
3.1 HTMLElement对象概览 41
3.2 HTMLElement对象属性与方法(包括继承的) 42
3.3 创建元素 44
3.4 获取元素的标签名 44
3.5 获取元素属性与值的列表/集合 45
3.6 获取、设置及移除元素的属性值 46
3.7 验证元素是否有某一特定属性 47
3.8 获取类属性值列表 48
3.9 添加与移除类属性中的部分值 49
3.10 变换某个类属性值 50
3.11 判断类属性值是否含有某一特定值 50
3.12 获取与设置data-*属性 51
第4章 元素节点选取 53
4.1 选取特定元素节点 53
4.2 选取/创建一个元素节点列表(即NodeList) 54
4.3 选取所有的直属子元素节点 56
4.4 选取与上下文有关的元素 56
4.5 预定义的元素节点选取/列表 58
4.6 使用matchesSelector()验证元素会否被选取 59
第5章 元素节点几何量与滚动几何量 61
5.1 元素节点尺寸、偏移及滚动概览 61
5.2 获取元素相对于offsetParent的offsetTop及offsetLeft值 61
5.3 使用getBoundingClientRect()获取元素相对于视区的Top,Right,Bottom及Left边沿偏移量 64
5.4 获取元素在视区中的尺寸(边框+填充+内容) 66
5.5 获取元素在视区中的尺寸(填充+内容),不含边框 67
5.6 使用elementFromPoint()获取视区中某一特定点上最顶层的元素 68
5.7 使用scrollHeight及scrollWidth获取滚动元素的尺寸 69
5.8 使用scrollTop及scrollLeft获取并设置从上、左边滚动的距离 70
5.9 使用scrollIntoView()滚动元素到视区 71
第6章 元素节点内联样式 73
6.1 样式属性(亦称元素内联CSS属性)概览 73
6.2 获取、设置及移除单个内联CSS属性 74
6.3 获取、设置及移除所有内联CSS属性 78
6.4 使用getComputedStyle()获取元素的已计算样式(即包含任何级联样式的实际样式) 80
6.5 使用class及id属性应用或者移除元素上的CSS属性 81
第7章 文本节点 83
7.1 文本对象概览 83
7.2 文本对象与属性 84
7.3 空白符创建文本节点 85
7.4 创建与注入文本节点 86
7.5 使用.data或nodeValue获取文本节点值 87
7.6 使用appendData()、deleteData()、insertData()、replaceData()及subStringData()操作文本节点 88
7.7 当有多个兄弟文本节点时 89
7.8 使用textContent移除文本标记并返回所有的子文本节点 90
7.9 textContent与innerText的区别 92
7.10 使用normalize()合并兄弟文本节点成单个文本节点 92
7.11 使用splitText()分割文本节点 93
第8章 DocumentFragment节点 95
8.1 DocumentFragment对象概览 95
8.2 使用createDocumentFragment()创建DocumentFragment 95
8.3 添加DocumentFragment到实时DOM 96
8.4 使用文档片段上的innerHTML 97
8.5 通过复制将片段所含节点保留在内存中 99
第9章 CSS样式表与CSS规则 101
9.1 CSS样式表概览 101
9.2 访问DOM中所有样式表(即CSSStyleSheet对象) 103
9.3 CSSStyleSheet属性与方法 104
9.4 CSSStyleRule概览 106
9.5 CSSStyleRule属性与方法 107
9.6 使用cssRules获取样式表内的CSS规则列表 108
9.7 使用insertRule()和deleteRule()来插入与删除样式表中的CSS规则 109
9.8 使用.style属性修改CSSStyleRule的值 110
9.9 创建新的内联CSS样式表 111
9.10 以编程方式添加外部样式表到HTML文档 111
9.11 用.disabled属性使样式表失效/生效 112
第10章 DOM中的JavaScript 115
10.1 插入与执行JavaScript概览 115
10.2 JavaScript默认同步解析 116
10.3 使用defer推迟外部脚本的下载与执行 117
10.4 使用async异步下载并执行外部JavaScript文件 118
10.5 使用动态<script>元素强制异步加载并解析外部JavaScript 120
10.6 通过给异步<script>加onload回调从而知道它们何时加载完毕 121
10.7 注意含有DOM操作的<script>的放置 122
10.8 获取DOM中<script>列表 122
第11章 DOM事件 125
11.1 DOM事件概览 125
11.2 DOM事件类型 127
11.3 事件流程 135
11.4 添加事件监听函数到Element节点、window对象及document对象 138
11.5 移除事件监听函数 139
11.6 从事件对象中获取事件属性 140
11.7 使用addEventListener()时监听函数中this的值 141
11.8 事件调用时取得事件模板而不是所绑定的节点或对象 143
11.9 使用preventDefault()撤销浏览器默认事件 143
11.10 使用stopPropagation()终止事件流程 145
11.11 使用stopImmediatePropagation()终止事件流程与相同目标上的其他事件 146
11.12 自定义事件 147
11.13 模拟/触发鼠标事件 148
11.14 事件委托 149
第12章 创作dom.js:源自jQuery的灵感,服务于现代浏览器,这是一个万众期待的DOM库 151
12.1 dom.js概览 151
12.2 创建唯一作用域 152
12.3 创建dom()与GetOrMakeDom(),全局暴露dom()与GetOrMakeDom.prototype 152
12.4 创建传给dom()的可选上下文参数 154
12.5 依据params产生一个持有DOM节点引用的对象并返回 155
12.6 创建each()方法并使它可链式调用 158
12.7 创建html()、append()及text()方法 159
12.8 拉dom.js出来兜兜风 160
12.9 总结与dom.js继续 162