节点与文档
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);
| 类型 | nodeType | nodeName |
|---|---|---|
Document | 9 | #document |
DocumentType | 10 | 文档类型名称 |
Element | 1 | 元素标签名 (全大写) |
Text | 3 | #text |
Comment | 8 | #comment |
CDATASection | 4 | #cdata-section |
DocumentFragment | 11 | #document-fragment |
Attr | 2 | 属性名 |
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 | 当前拥有焦点的元素 |