WebGL Tutorial
and more

DOM快速参考

撰写时间:2023-04-26

修订时间:2023-05-22

DOM简介

DOM是用于访问及维护HTML文档或XML文档的API,是Web开发人员必须了解及掌握的部分。

Node接口: EventTarget

属性

Node类型

类型名称
const unsigned shortELEMENT_NODE1
const unsigned shortATTRIBUTE_NODE2
const unsigned shortTEXT_NODE3
const unsigned shortCDATA_SECTION_NODE4
const unsigned shortENITITY_REFERENCE_NODE5
const unsigned shortENTITY_NODE6
const unsigned shortPROCESSING_INSTRUCTION_NODE7
const unsigned shortCOMMENT_NODE8
const unsigned shortDOCUMENT_NODE9
const unsigned shortDOCUMENT_TYPE_NODE10
const unsigned shortDOCUMENT_FRAGMENT_NODE11
const unsigned shortNOTATION_NODE12

文档位置

类型名称
const unsigned shortDOCUMENT_POSITION_DISCONNECTED0x01
const unsigned shortDOCUMENT_POSITION_PRECEDING0x02
const unsigned shortDOCUMENT_POSITION_FOLLOWING0x04
const unsigned shortDOCUMENT_POSITION_CONTAINS0x08
const unsigned shortDOCUMENT_POSITION_CONTAINS_BY0x10
const unsigned shortDOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC0x20

只读属性

类型名称
unsigned shortnodeType
DOMStringnodeName
USVStringbaseURI
booleanisConnected
Document?ownerDocument
Node?parentNode
Element?parentElement
NodeListchildNodes
Node?firstChild
Node?lastChild
Node?previousSibling
Node?nextSibling

可修改属性

类型名称
DOMString?nodeValue
DOMString?textContent

字典属性

类型名称选项
dictionaryGetRootNodeOptions{boolean composed = false;}

Node方法

返回类型名称参数
NodegetRootNode(optional GetRootNodeOptions options = {})
booleanhasChildNodes()
undefinednormalize()
NodecloneNode(optional boolean deep = false)
booleanisEqualNode(Node? otherNode)
booleanisSameNode(Node? otherNode)
unsigned shortcompareDocumentPosition(Node other)
booleancontains(Node? other)
DOMString?lookupPrefix(DOMString? namespace)
DOMString?lookupNamespaceURI(DOMString? prefx)
booleanisDefaultNamespace(DOMString? namespace)
NodeinsertBefore(Node node,)
Node? child
NodeappendChild(Node node)
NodereplaceChild(Node node,)
Node child
NoderemoveChild(Node child)

mixin NonElementParentNode接口

方法

返回类型名称参数
Element?getElementById(DOMString elementId)

DocumentDocumentFragment都包含NonElementParentNode

mixin ParentNode接口

如果一个Node有子节点,则它是ParentNode,则有以下的属性及方法。

只读属性

类型名称
HTMLCollectionchildren
Element?firstElementChild
Element?lastElementChild
unsigned longchildElementCount

方法

返回类型名称参数
undefinedprepend((Node or DOMString)... nodes)
undefinedappend((Node or DOMString)... nodes)
undefinedreplaceChildren((Node or DOMString)... nodes)
Element?querySelector(DOMString selectors)
NodeListquerySelectorAll(DOMString selectors)

Document, DocumentFragmentElement都包含ParentNode

mixin NonDocumentTypeChildNode接口

如果一个Node有兄弟节点,则它是NonDocumentTypeChildNode,则有以下的属性。

只读属性

类型名称
Element?previousElementSibling
Element?nextElementSibling

Element, CharacterDataElement都包含NonDocumentTypeChildNode

mixin ChildNode

如果一个Node有父节点,则它是ChildNode,则有以下的方法。

方法

返回类型名称参数
undefinedbefore((Node or DOMString)... nodes)
undefinedafter((Node or DOMString)... nodes)
undefinedreplaceWith((Node or DOMString)... nodes)
undefinedremove()

DocumentType, ElementCharacterData都包含ChildNode

Element接口: Node

属性

只读属性

类型名称
DOMString? namespaceURI
DOMString? prefix
DOMString localName
DOMString tagName
DOMTokenList classList
NamedNodeMap attributes
ShadowRoot? shadowRoot

可修改属性

类型名称
DOMString id
DOMString className
DOMString slot

字典属性

类型名称选项
dictionaryShadowRootInit{required ShadowRootMode mode;}
boolean delegatesFocus = false,
SlotAssignmentMode slotAssignment = "named"

方法

返回类型名称参数
booleanhasAttributes()
sequence<DOMString>getAttributeNames()
DOMString?getAttribute(DOMString qualifiedName)
DOMString?getAttributeNS(DOMString? namespace,)
DOMString localName
undefinedsetAttribute(DOMString qualifiedName,)
DOMString value
undefinedsetAttributeNS(DOMString? namespace,)
DOMString qualifiedName,
DOMString value
undefinedremoveAttribute(DOMString qualifiedName)
undefinedremoveAttributeNS(DOMString? namespace,)
DOMString localName
booleantoggleAttribute(DOMString qualifiedName,)
optional boolean force
booleanhasAttribute(DOMString qualifiedName)
booleanhasAttributeNS(DOMString? namespace,)
DOMString localname
Attr?getAttributeNode(DOMString qualifiedName)
Attr?getAttributeNodeNS(DOMString? namespace,)
DOMString localName
Attr?setAttributeNode(Attr attr)
Attr?setAttributeNodeNS(Attr attr)
Attr?removeAttributeNode(Attr attr)
ShadowRootattachShadow(ShadowRootInit init)
Element?closest(DOMString selectors)
booleanmatches(DOMString selectors)
booleanwebkitMatchesSelector(DOMString selectors)
HTMLCollectiongetElementsByTagName(DOMString qualifiedName)
HTMLCollectiongetElementsByTagNameNS(DOMString? namespace,)
DOMString localName
HTMLCollectiongetElementsByClassName(DOMString classNames)
Element?insertAdjacentElement(DOMString where,)
Element element
undefinedinsertAdjacentText(DOMString where,)
DOMString data

扩展属性及方法

DOM Parsing and Serialization标准为Element提供了以下扩展的属性及方法。

属性

类型名称
DOMString innerHTML
DOMString outerHTML

方法

返回类型名称参数
voidinsertAdjacentHTML(DOMString position,)
DOMString text

Document接口: Node

属性

只读属性

类型名称
DOMImplementation implementation
USVString URL
USVString documentURI
DOMString compatMode
DOMString characterSet
DOMString charset
DOMString inputEncoding
DOMString contentType
DocumentType? doctype
Element? documentElement

字典属性

类型名称选项
dictionaryElementCreationOptions{DOMString is;}

方法

返回类型名称参数
HTMLCollectiongetElementsByTagName(DOMString qualifiedName)
HTMLCollectiongetElementsByTagNameNS(DOMString? namespace,)
DOMString localName
HTMLCollectiongetElementsByClassName(DOMString classNames)
ElementcreateElement(DOMString localName,)
optional (DOMString or ElementCreationOptions) options = {}
ElementcreateElementNS(DOMString? namespace,)
DOMString qualifiedName,
optional (DOMString or ElementCreationOptions) options = {}
DocumentFragmentcreateDocumentFragment()
TextcreateTextNode(DOMString data)
CDATASectioncreateCDATASection(DOMString data)
CommentcreateComment(DOMString data)
ProcessingInstructioncreateProcessingInstruction(DOMString target,)
DOMString data
NodeimportNode(Node node,)
optional boolean deep = false
NodeadoptNode(Node node)
AttrcreateAttribute(DOMString localName)
AttrcreateAttributeNS(DOMString? namespace,)
DOMString qualifiedName
EventcreateEvent(DOMString interface)
RangecreateRange()
NodeIteratorcreateNodeIterator(Node root,)
optional unsigned long whatToShow = 0xFFFFFFFF,
optional NodeFilter? filter = null
TreeWalkercreateTreeWalker(Node root,)
optional unsigned long whatToShow = 0xFFFFFFFF,
optional NodeFilter? filter = null

XMLDocument接口:Document

(To be continued...)

参考资源

  1. DOM Living Standard
  2. DOM Parsing and Serialization
  3. Live DOM Viewer
  4. HTML Living Standard