跳到主要内容

节点与文档

DOM 有哪些节点类型?​

  • 基类型: 所有节点类型都继承 Node;
  • 类型常量: Node.ELEMENT_NODE(1)、ATTRIBUTE_NODE(2)、TEXT_NODE(3)、CDATA_SECTION_NODE(4)、ENTITY_REFERENCE_NODE(5)、ENTITY_NODE(6)、PROCESSING_INSTRUCTION_NODE(7)、COMMENT_NODE(8)、DOCUMENT_NODE(9)、DOCUMENT_TYPE_NODE(10)、DOCUMENT_FRAGMENT_NODE(11)、NOTATION_NODE(12);
类型nodeTypenodeName
Document9#document
DocumentType10文档类型名称
Element1元素标签名 (全大写)
Text3#text
Comment8#comment
CDATASection4#cdata-section
DocumentFragment11#document-fragment
Attr2属性名

Node 提供哪些通用属性与方法?​

成员作用
nodeType / nodeName / nodeValue节点类型 / 名称 / 值
childNodes / parentNode子节点集合 / 父节点
firstChild / lastChild第一个 / 最后一个子节点
previousSibling / nextSibling前一个 / 后一个同级节点
hasChildNodes()是否有子节点
appendChild(node)末尾追加子节点
insertBefore(newNode, referenceNode)在参考节点前插入
replaceChild(newChild, oldChild)替换子节点
removeChild(child)移除子节点
cloneNode(deep?)克隆节点, deep 为 true 时深复制

Document 提供哪些入口?​

成员作用
document.documentElement恒指向 <html>
document.body恒指向 <body>
document.head指向 <head>
document.title<title> 内容, 可读写
document.URL完整 URL, 只读
document.domain域名, 可写但只能是 URL 的子串
document.readyState"loading"/"interactive"/"complete"
document.characterSet文档字符集
document.createElement(tag)创建元素节点
document.createTextNode(data)创建文本节点
document.createRange()创建 DOM 范围, 见 Range
document.activeElement当前拥有焦点的元素