1. node类型

appendChild

insertBefore

replaceChild

removeChild

IE9之前的版本不会为空白符创建节点

normalize

2. Document类型 nodeType==9

html = document.documentElement;

body = document.body;

所有浏览器都支持document.documentElementdocument.body属性

title\url\domain\referrer

特殊集合:document.anchors/document.applets/document.forms/document.images/document.links

文档写入:document.write()/document.writeIn()/document.open()/document.close()

3. Element类型 nodeType==1

html属性:id/title/lang/dir/className

特性方法:getAttribute()/setAttribute()/removeAttribute()

属性方法:getNamedItem(name)/removeNamedItem(name)/setNamedItem(node)/item(pos)

创建元素:document.createElement()

4. Text类型 nodeType==3

appendData(text)/deleteData(offset, count)/insertData(offset, text)/replaceData(offset, count, text)/splitText(offset)/substringData(offset, count)

创建文本节点:document.createTextNode()

规范化文本节点:normalize()把两个节点合二为一 splitText正好相反`

5. Comment类型 nodeType==8

创建注释:document.createComment()

6. CDATASection类型 nodeType==4 针对XML文档

7. DocumentType类型 nodeType==10

8. DocumentFragment类型 nodeType==11 在文档中没有对应的标记

9. Attr类型 nodeType==2

特性节点:document.createAttribute()

DOM扩展

  1. querySelector()方法 返回匹配的第一个元素

  2. querySelectorAll()方法 返回一个NodeList的实例

  3. matchesSelector()方法 调用元素与该选择符匹配,返回true,否则返回false,还没有浏览器支持:实验性msMatchesSelector()/mozMatchesSelector()/webkitMatchesSelector() 运用此方法写一个包装函数

【元素遍历】

弥补浏览器返回文本节点的差异,元素遍历:childElementCount/firstElementChild/lastElementChild/previousElementSibling/nextElementSibling

【HTML5】新增API

getElementByClassName()方法

classList属性,新类型定义如下方法add(value)/contains(value)/remove(value)/toggle(value)

焦点管理 document.activeElement属性,文档刚加载完成时保存的是document.body,加载期间值为null;新增document.hasFocus()方法确定文档是否获得焦点

HTMLDocument的变化:document.readyState('loading/complete')/兼容模式document.compatMode('CSS1Compat标准/BackCompat混杂')/head属性docuemnt.head

字符集属性document.charset

自定义数据属性 dataset属性的值是DOMStringMap的一个实例

插入标记:innerHTML属性:可以像访问文档中的其他节点一样访问新创建的节点,但插入<script>元素不会执行其中的脚本/outerHTML属性:返回调用它的元素及所有子节点的HTML标签/insertAdjacentHTML('beforebegin/afterbegin/beforeend/afterend', content)方法

scrollIntoView()方法

【专有扩展】

文档模式:document.documentMode

children属性:处理文本中的空白符时有差异,这个属性是HTMLCollection的实例

contains()方法:某节点是不是另一个节点的后代,DOM level 3方法:compareDocumentPosition()确定节点关系[1/无关,2/居前,4/居后,8/包含,16/被包含]

插入文本:未被纳入html5规范innerHTML/outerHTML

滚动:scrollIntoViewIfNeeded(alignCenter)/scrollByLines(lineCount)/scrollByPages(pageCount)