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)