Introduction to DOM
DOM编程艺术
1 文档树
1.1 概念
Document Object Model
文档对象模型
API 规范
- DOM Core
- DOM HTML
- DOM Style
- DOM Event
1.2 节点遍历
1.3 节点类型
1.4 元素遍历
2 节点操作
2.1 获取节点
2.1.1 getElementById
element = document.getElementById(id)
2.1.2 getElementsByTagName
collection = element.getElementsByTagName(tagName)
2.1.3 getElementsByClassName
collection = element.getElementsByClassName(className)
IE9+
|
|
2.1.4 querySelector querySelectorAll
list = element.querySelector(selector)
list = element.querySelectorAll(selector)
IE8+
2.2 创建节点
element = document.createElement(tagName)
2.3 修改节点
2.3.1 textContent
IE9+
2.3.2 innerText
|
|
2.4 插入节点
2.4.1 appendChild
var aChild = element.createChild(tagName)
element.appendChild(aChild)
2.4.2 insertBefore
var aChild = element.createChild(tagName)
element.insertBefore(aChild,referenceChild)
2.5 删除节点
element.removeChild(aChild)
2.5 innerHTML
问题
- 原来的状态事件不会保留
- 内存泄露(旧浏览器)
- 安全(可能插入脚本)
建议仅用于新节点,节点内容需要是可控经过检查的
3 属性操作
3.1 property
3.1.1 读写
|
|
3.1.2 类型
property | value | type |
---|---|---|
className | ‘u-text’ | String |
maxLength | 10 | Number |
disabled | true | Boolean |
onclick | function .. | Function |
3.1.3 特点
- 取得实用对象
- 通过属性访问,通用性不佳,会出现名字异常,而且扩展性也不好
3.2 get/set Attribute
3.2.1 读写
|
|
3.2.2 类型
attribute | value | type |
---|---|---|
class | ‘u-text’ | String |
maxLength | 10 | String |
disabled | true | String |
onclick | function .. | String |
3.2.3 特点
- 仅仅字符串
- 通用性好
3.3 dataset
- HTMLElement.dataset(上的一个属性)
- data-*属性集
- 元素上保存数据
- 适合自定义属性数据,旧浏览器不兼容
|
|
dataset | value | type |
---|---|---|
id | ‘123’ | String |
accountName | ‘wq’ | String |
name | ‘Tom’ | String |
‘..’ | String | |
moblie | ‘..’ | String |
4 样式操作
4.1 style
对应元素内嵌样式
|
|
- 更新一个属性需要一个语句
- 不是熟悉的CSS
- 样式混淆在脚本
4.2 style.cssText
|
|
- 样式混淆在脚本
4.3 更新class
- 一次更新多个元素的样式
4.3 更新stylesheet
4.4 获取实际样式值
window.getComputedStyle(element[,paseudoElt]);
element.currentStyle 针对ie9
|
|
5 事件
5.1 事件流
5.2 事件注册
DOM 2级 为元素分配多个处理函数(而非覆盖)
|
|
5.3 事件类型
鼠标事件
滚轮事件
焦点事件
输入事件
键盘事件
其它事件
5.4 事件代理
5.5 自定义事件和拖放
6 多媒体
|
|
|
|
|
|
|
|
Web Audio API
7 CANVAS
|
|
8 BOM
8.1 属性
8.2 方法
8.3 事件
9 数据通信
9.1 http
9.2 ajax
|
|
10 数据存储
10.1 cookie
|
|
|
|
11 动画
实现方式 - gif, flash, CSS3, JS
三要素 - 对象、属性、定时器
|
|
12 列表操作
13 表单操作
13.1 表单元素
13.2 表单验证
13.3 表单提交
13.4 表单应用
|
|