Document
- DOM是javascript操作网页的接口,全称'文档对象模型'。
- dom的最小组成单位是节点,文档的树形结构,即dom树
- 节点类型共7种:
- 文档节点
- 文档类型节点
- 元素节点
- 属性节点
- 文本节点
- 注释节点
- 文档片段节点
节点树
- 浏览器原生提供document节点,代表整个文档,是顶层节点
- 文档的第一层有两个节点,文档类型节点<!doctype html>和html网页的顶层容器标签<\html>\,后者是整个树结构的根节点
- 除了根节点,其他节点都有三种层级关系
- 父节点,parentNode
- 子节点, childNodes
- 同级节点,sibling
节点属性
- nodeType, 节点类型
- nodeName, 节点名称
- nodeValue, 当前节点本身的文本值,只有文本节点,属性节点,注释节点有nodeValue
- textContent, 当前节点和它的所有后代节点的文本内容,自动忽略当前节点内部的 HTML 标签,返回所有文本内容
- nextSibling, 紧跟在当前节点后面的第一个同级节点,该属性还包括文本节点和注释节点
- previousSibling, 当前节点前面的、距离最近的一个同级节点,该属性还包括文本节点和注释节点
- parentNode, 当前节点的父节点, 父节点只可能是三种类型:元素节点(element)、文档节点(document)和文档片段节点(documentFragment)
- parentElement, 当前节点的父元素节点
- firstChild, 当前节点的第一个子节点, 子节点除了元素节点,还可能是文本节点或注释节点
- lastChild, 当前节点的最后一个子节点
- childNodes, 返回一个类似数组的对象(NodeList集合),成员包括当前节点的所有子节点
- 除了元素节点,childNodes属性的返回值还包括文本节点和注释节点
节点方法
- appendChild()
- hasChildNodes()
- removeChild()
- replaceChild()
- cloneNode()
- insertBefore()
NodeList
- 可以包含各种类型的节点
- 获取NodeList实例:
- Node.childNodes
- document.querySelectorAll()
- NodeList实例是一个类似数组的对象
NodeList属性
NodeList方法
- forEach()
- item()
- keys()
- values()
- entries()
HTMLCollection
- 只能包含 HTML 元素节点
- length属性,item(), namedItem()方法
Document 节点
ParentNode 接口
- children, 返回当前节点的所有元素子节点
- firstElementChild, 返回当前节点的第一个元素子节点
- lastElementChild, 返回当前节点的最后一个元素子节点
- append(), 追加子节点,位置是最后一个元素子节点的后面
- prepend(), 追加子节点,位置是第一个元素子节点的前面
ChildNode 接口
- remove(), 从父节点移除当前节点
- before(), 在当前节点的前面,插入一个或多个同级节点
- after(), 在当前节点的后面,插入一个或多个同级节点