【WIP】客户端JavaScript DOM
创建: 2017/10/12
初步完成: 2017/10/15
更新: 2017/10/14 标题加上【WIP】,继续完成
【TODO】
补充暂略的, 搜【略】
DOM树 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
概要 | 基本节点
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
节点对象的属性 | 注意: 不要这样子找节点,
空节点的存在影响结果! 一般用class和id来找
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表示html树的属性 | 无视文本节点,所以不会有空节点
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
节点对象(Node Object)的取得 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通过ID获取 单个 |
ID不能重复,所有可以获取特定的一个
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通过元素名获取 多个 |
不区别大小写 获取所有同类元素
返回的是NodeList, 只可读的类似数组的Object,带length 会实时变化 迭代时候复制成一个静态的 var divs = document.getElementsByTagName_r("div"); var staticList = Array.prototype.slice.call(divs, 0); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通过class名获取元素 多个 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通过name获取元素 多个 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
用CSS选择器 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
接入用的属性 | 带[]的都是HTMLCollection对象,类似数组
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
属性值的获取与设定 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
元素的属性 | 《a id="😒" href="🐶"》😳随便做个测试《/a》 id="😒" 这种就是属性 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
元素对象的属性 | 区分大小写,小驼峰写法 直接【元素对象.属性名 】的话名字和html有不同,尽量用setAttribute()
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
属性一览 | 只可读! 元素对象.attributes p381 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
元素内容的取得与设定 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
元素的内容 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
节点的生成,插入,删除 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
生成节点 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
插入节点 | 插入到元素的子节点的最后
插入到当前节点的前面
如果插入的是现存的节点,则相当于移动该节点(老地方的被删除) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
删除节点 | 节点.removeChild(子节点) 注: 删除的是子节点 要删除自己: node.parentNode.removeChild(node); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
替换节点 | 节点.replaceChild(新节点, 子节点) 注: 替换的是子节点 要替换自己: node.parentNode.replaceChild(newNode, node); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
元素的位置 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表示元素位置的坐标系 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取元素的位置与大小 | var rect = 元素对象.getBoundingCientRect(); 获得的信息不包括margin的量 返回的是ClientRect对象, 有如下属性
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取视口的大小 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取滚动量 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
滚动 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
改变元素位置和表现 (performation)
|
改变元素位置等layout相关的不属于渲染引擎最优化的范围,性能低下 实际开发只在必要时候进行layout的实时变动 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTML Form | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表单 | 两种使用方式
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表单要素 | p397 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取表单要素 | 获取表单
获取表单的子元素
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSS的控制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSS | 样式表 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# TODO: p400 略 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||