# DOM
# 定义
DOM(文档对象模型,Document Object Model),可以理解为样式和内容,结构的结合体,对文档内容进行抽象。
# DOM 节点
nodeType 获取节点类型
nodeName 获取元素标签名称
nodeValue 获取文本和注释的内容
# 常用的节点
Element (元素节点) 1 ELEMENT_NODE
Attr (属性节点) 2 ATTRIBUTE_NODE
Text (文本节点) 3 TEXT_NODE
Comment (注释节点) 8 COMMENT_NODE
Document (文档类型节点) 9 DOCUMENT_NODE
DocumentType (文档类型节点) 10 DOCUMENT_TYPE_NODE
DocumentFragment (文档片段节点) 11 DOCUMENT_FRAGMENT_NODE
# 根结点 document
nodeType:9 nodeName: #document
# 元素节点 Element
document.documentElement: html
document.head: head
document.body: body
nodeType:1 nodeName: 大写元素标签
# 文本节点 Text
nodeType:3 nodeName: #text
# 注释节点 Comment
nodeType:8 nodeName: #comment
# 父节点
parentNode 获取父节点,一般用这个 parentElement ie 支持,功能类似
document.documentElement.parentNode; // => the document node
document.documentElement.parentElement; // => null
# 子节点
childNodes: 子节点,包括文本节点,返回集合nodelist
firstChild: 第一个子节点
lastChild: 最后一个子节点
children: 元素的子节点
firstElementChild: 第一个子元素节点
lastElementChild: 最后一个子元素节点
# 兄弟节点
previousSibling :前一个兄弟节点
nextSibling :下一个兄弟节点
previousElementSibling :前一个兄弟元素节点
nextElementSibling :后一个兄弟元素节点
# 创建节点
createElement: 创建一个元素节点
createTextNode: 创建一个文本节点
document.createDocumentFrame :创建文档片段
document.createAttribute :创建节点属性
document.adoptNode :从外部文档中获取一个节点
document.importNode :拷贝外部文档的一个节点
node.cloneNode :克隆节点
node.textContent: 获取或设置元素节点的文本内容
node.innerHTML :获取或设置元素的HTML内容
# 插入节点
node.appendChild() :添加一个节点作为父元素的最后一个子元素
node.insertBefore() :在指定的同级节点前将节点插入父元素
node.replaceChild() :用一个新节点替换现有节点
# 删除节点
node.removeChild() :删除子节点
node.remove() :删除节点
# 视口位置
window: 浏览器中打开的窗口
document: 属于 window,是 html 文档
window.screen.width:显示器屏幕的宽度 window.screen.height:显示器屏幕的高度 window.screen.availHeight:浏览器窗口在屏幕上可占用的垂直空间,即最大高度 window.screen.availWidth:返回浏览器窗口可占用的水平宽度 window.screenTop:浏览器窗口在屏幕上的可占用空间上边距离屏幕上边界的距离 window.screenLeft:返回浏览器可用空间左边距离屏幕(系统桌面)左边界的距离
window.outerHeight: 浏览器高度 window.innerHeight: 浏览器高度-工具栏高度(ie9 以上) window.outerWidth: 浏览器宽度 widnow.innerWidth: 浏览器宽度-侧边栏宽度,镶边等边框(ie9 以上)
document.documentElement.clientHeight:浏览器高度-滚动条高度 document.body.clientHeight: 浏览器高度-滚动条高度-html 元素的边框-body 的边框和滚动条
offsetHeight/offsetWidth: 元素的像素高度/宽度,包含边框,内边距,滚动条 clientHeight/clientWidth:元素可见区的高度/宽度,不包含滚动条 scrollHeight 和 scrollWidth:元素整个的高度/宽度
offsetLeft/offsetTop: 元素左上角相对于 offsetParent 的左边界的偏移值 clientLeft/clientTop: border 的宽度 scrollLeft/scrollTop: 滚动的高度和宽度 offsetParent: 包含父级定位元素,如果没有则为根元素,display 为 none 或者 fixed 时,返回 null
window.pageYOffset/document.documentElement.scrollTop: html 页面的滚动高度 window.pageXOffset/document.documentElement.scrollLeft: html 页面的滚动宽度
meta →