The Document Object Model (DOM) is a programming interface for HTML, XML and SVG documents. It provides a structured representation of the document (a tree) and it defines a way that the structure can be accessed from programs so that they can change the document structure, style and content. The DOM provides a representation of the document as a structured group of nodes and objects that have properties and methods. Nodes can also have event handlers attached to them, and once that event is triggered the event handlers get executed. Essentially, it connects web pages to scripts or programming languages.
Though often accessed using JavaScript, the DOM is not part of it and it can be used by other languages, though this is much less common.
An introduction to the DOM is available.
DOM interfaces
AttrCharacterDataChildNodeCommentCustomEventDocumentDocumentFragmentDocumentTypeDOMErrorDOMExceptionDOMImplementationDOMStringDOMTimeStampDOMSettableTokenListDOMStringListDOMTokenListElementEventEventTargetHTMLCollectionMutationObserverMutationRecordNodeNodeFilterNodeIteratorNodeListParentNodeProcessingInstructionPromisePromiseResolverRangeTextTreeWalkerURLWindowWorkerXMLDocument
Obsolete DOM interfaces
The Document Object Model is in the process of being heavily simplified. In order to achieve this the following interfaces present in the different DOM level 3 or earlier specification have been removed. It is still unclear if some may be reintroduced, but for the moment they have to be considered as obsolete and should be avoided:
HTML interfaces
A document containing HTML is described using the HTMLDocument interface. Note that the HTML specification also extends the Document interface.
An HTMLDocument object also gives access to browser features: the tab, or window, in which a page is drawn using the Window interface, the Style associated to it (usually CSS), the history of the browser relative to the context, History , eventually a Selection done on the document.
HTML element interfaces
HTMLAnchorElementHTMLAppletElementHTMLAreaElementHTMLAudioElementHTMLBaseElementHTMLBodyElementHTMLBRElementHTMLButtonElementHTMLCanvasElementHTMLDataElementHTMLDataListElementHTMLDirectoryElementHTMLDivElementHTMLDListElementHTMLElementHTMLEmbedElementHTMLFieldSetElementHTMLFontElementHTMLFormElementHTMLFrameElementHTMLFrameSetElementHTMLHeadElementHTMLHeadingElementHTMLHtmlElementHTMLHRElementHTMLIFrameElementHTMLImageElementHTMLInputElementHTMLKeygenElementHTMLLabelElementHTMLLegendElementHTMLLIElementHTMLLinkElementHTMLMapElementHTMLMediaElementHTMLMenuElementHTMLMetaElementHTMLMeterElementHTMLModElementHTMLObjectElementHTMLOListElementHTMLOptGroupElementHTMLOptionElementHTMLOutputElementHTMLParagraphElementHTMLParamElementHTMLPreElementHTMLProgressElementHTMLQuoteElementHTMLScriptElementHTMLSelectElementHTMLSourceElementHTMLSpanElementHTMLStyleElementHTMLTableElementHTMLTableCaptionElementHTMLTableCellElementHTMLTableDataCellElementHTMLTableHeaderCellElementHTMLTableColElementHTMLTableRowElementHTMLTableSectionElementHTMLTextAreaElementHTMLTimeElementHTMLTitleElementHTMLTrackElementHTMLUListElementHTMLUnknownElementHTMLVideoElement
Other interfaces
Obsolete HTML interfaces
SVG interfaces
SVG element interfaces
SVGAElementSVGAltGlyphElementSVGAltGlyphDefElementSVGAltGlyphItemElementSVGAnimationElementSVGAnimateElementSVGAnimateColorElementSVGAnimateMotionElementSVGAnimateTransformElementSVGCircleElementSVGClipPathElementSVGColorProfileElementSVGComponentTransferFunctionElementSVGCursorElementSVGDefsElementSVGDescElementSVGElementSVGEllipseElementSVGFEBlendElementSVGFEColorMatrixElementSVGFEComponentTransferElementSVGFECompositeElementSVGFEConvolveMatrixElementSVGFEDiffuseLightingElementSVGFEDisplacementMapElementSVGFEDistantLightElementSVGFEFloodElementSVGFEGaussianBlurElementSVGFEImageElementSVGFEMergeElementSVGFEMergeNodeElementSVGFEMorphologyElementSVGFEOffsetElementSVGFEPointLightElementSVGFESpecularLightingElementSVGFESpotLightElementSVGFETileElementSVGFETurbulenceElementSVGFEFuncRElementSVGFEFuncGElementSVGFEFuncBElementSVGFEFuncAElementSVGFilterElementSVGFilterPrimitiveStandardAttributesSVGFontElementSVGFontFaceElementSVGFontFaceFormatElementSVGFontFaceNameElementSVGFontFaceSrcElementSVGFontFaceUriElementSVGForeignObjectElementSVGGElementSVGGlyphElementSVGGlyphRefElementSVGGradientElementSVGHKernElementSVGImageElementSVGLinearGradientElementSVGLineElementSVGMarkerElementSVGMaskElementSVGMetadataElementSVGMissingGlyphElementSVGMPathElementSVGPathElementSVGPatternElementSVGPolylineElementSVGPolygonElementSVGRadialGradientElementSVGRectElementSVGScriptElementSVGSetElementSVGStopElementSVGStyleElementSVGSVGElementSVGSwitchElementSVGSymbolElementSVGTextElementSVGTextPathElementSVGTitleElementSVGTRefElementSVGTSpanElementSVGUseElementSVGViewElementSVGVKernElement
SVG data type interfaces
Here are the DOM API for data types used in the definitions of SVG properties and attributes.
Note: Starting in Gecko 5.0,the following SVG-related DOM interfaces representing lists of objects are now indexable and can be accessed like arrays; in addition, they have a length property indicating the number of items in the lists: SVGLengthList, SVGNumberList, SVGPathSegList, and SVGPointList.
Static type
Animated type
SVG Path segment interfaces
SVGPathSegListSVGPathSegSVGPathSegArcAbsSVGPathSegArcRelSVGPathSegClosePathSVGPathSegCurvetoCubicAbsSVGPathSegCurvetoCubicRelSVGPathSegCurvetoCubicSmoothAbsSVGPathSegCurvetoCubicSmoothRelSVGPathSegCurvetoQuadraticAbsSVGPathSegCurvetoQuadraticRelSVGPathSegCurvetoQuadraticSmoothAbsSVGPathSegCurvetoQuadraticSmoothRelSVGPathSegLinetoAbsSVGPathSegLinetoHorizontalAbsSVGPathSegLinetoHorizontalRelSVGPathSegLinetoRelSVGPathSegLinetoVerticalAbsSVGPathSegLinetoVerticalRelSVGPathSegMovetoAbsSVGPathSegMovetoRel