1. node类型
  appendChild
  insertBefore
  replaceChild
  removeChild
IE9之前的版本不会为空白符创建节点
  normalize
2. Document类型 nodeType==9
  html = document.documentElement;
  body = document.body;
  所有浏览器都支持document.documentElement和document.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扩展
- querySelector()方法 返回匹配的第一个元素
- querySelectorAll()方法 返回一个NodeList的实例
- 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)