---
title: Document Object Model (DOM)
slug: Web/API/Document_Object_Model
tags:
- API
- DOM
- DOM Reference
- Intermediate
- Reference
translation_of: Web/API/Document_Object_Model
---
{{DefaultAPISidebar("DOM")}}
Il Document Object Model (DOM) rappresenta una pagina web come un documento con un albero logico di oggetti.
Ogni ramo dell'albero termina in un nodo, e ogni nodo contiene oggetti. Il modello DOM collega le pagine web agli script o ai linguaggi di programmazione. Usualmente significa usare JavaScript, anche se modellare documenti HTML, SVG o XML come oggetti non è parte del linguaggio JavaScript.
I metodi del DOM permettono un accesso programmatico all'albero; tramite i metodi e le proprietà del DOM è possibile modificare la struttura del documento stesso, lo stile e/o il contenuto.
I nodi possono avere degli eventi aggangiati ad essi e quando un evento viene scatenato, l'handler dell'evento viene eseguito.
E' disponibile una introduzione al DOM.
Interfacce DOM
- {{domxref("Attr")}}
- {{domxref("CharacterData")}}
- {{domxref("ChildNode")}} {{experimental_inline}}
- {{domxref("Comment")}}
- {{domxref("CustomEvent")}}
- {{domxref("Document")}}
- {{domxref("DocumentFragment")}}
- {{domxref("DocumentType")}}
- {{domxref("DOMError")}}
- {{domxref("DOMException")}}
- {{domxref("DOMImplementation")}}
- {{domxref("DOMString")}}
- {{domxref("DOMTimeStamp")}}
- {{domxref("DOMSettableTokenList")}}
- {{domxref("DOMStringList")}}
- {{domxref("DOMTokenList")}}
- {{domxref("Element")}}
- {{domxref("Event")}}
- {{domxref("EventTarget")}}
- {{domxref("HTMLCollection")}}
- {{domxref("MutationObserver")}}
- {{domxref("MutationRecord")}}
- {{domxref("NamedNodeMap")}}
- {{domxref("Node")}}
- {{domxref("NodeFilter")}}
- {{domxref("NodeIterator")}}
- {{domxref("NodeList")}}
- {{domxref("NonDocumentTypeChildNode")}}
- {{domxref("ParentNode")}}
- {{domxref("ProcessingInstruction")}}
- {{domxref("Selection")}}{{experimental_inline}}
- {{domxref("Range")}}
- {{domxref("Text")}}
- {{domxref("TextDecoder")}} {{experimental_inline}}
- {{domxref("TextEncoder")}} {{experimental_inline}}
- {{domxref("TimeRanges")}}
- {{domxref("TreeWalker")}}
- {{domxref("URL")}}
- {{domxref("Window")}}
- {{domxref("Worker")}}
- {{domxref("XMLDocument")}} {{experimental_inline}}
Interfacce DOM obsolete {{obsolete_inline}}
The Document Object Model has been highly simplified. To achieve this, the following interfaces present in the different DOM level 3 or earlier specification have been removed. It is still not very clear whether some may be reintroduced or not, but for the time being they have to be considered as obsolete and should be avoided:
- {{domxref("CDATASection")}}
- {{domxref("DocumentTouch")}}
- {{domxref("DOMConfiguration")}}
- {{domxref("DOMErrorHandler")}}
- {{domxref("DOMImplementationList")}}
- {{domxref("DOMImplementationRegistry")}}
- {{domxref("DOMImplementationSource")}}
- {{domxref("DOMLocator")}}
- {{domxref("DOMObject")}}
- {{domxref("DOMUserData")}}
- {{domxref("ElementTraversal")}}
- {{domxref("Entity")}}
- {{domxref("EntityReference")}}
- {{domxref("NamedNodeMap")}}
- {{domxref("NameList")}}
- {{domxref("Notation")}}
- {{domxref("TypeInfo")}}
- {{domxref("UserDataHandler")}}
HTML interfaces
A document containing HTML is described using the {{domxref("HTMLDocument")}} interface. Note that the HTML specification also extends the {{domxref("Document")}} interface.
An HTMLDocument
object also gives access to various features of browsers like the tab or the window, in which a page is drawn using the {{domxref("Window")}} interface, the {{domxref("window.style", "Style")}} associated to it (usually CSS), the history of the browser relative to the context, {{domxref("window.history", "History")}}. Eventually, {{domxref("Selection")}} is done on the document.
HTML element interfaces
- {{domxref("HTMLAnchorElement")}}
- {{domxref("HTMLAppletElement")}}
- {{domxref("HTMLAreaElement")}}
- {{domxref("HTMLAudioElement")}}
- {{domxref("HTMLBaseElement")}}
- {{domxref("HTMLBodyElement")}}
- {{domxref("HTMLBRElement")}}
- {{domxref("HTMLButtonElement")}}
- {{domxref("HTMLCanvasElement")}}
- {{domxref("HTMLDataElement")}}
- {{domxref("HTMLDataListElement")}}
- {{domxref("HTMLDialogElement")}}
- {{domxref("HTMLDirectoryElement")}}
- {{domxref("HTMLDivElement")}}
- {{domxref("HTMLDListElement")}}
- {{domxref("HTMLElement")}}
- {{domxref("HTMLEmbedElement")}}
- {{domxref("HTMLFieldSetElement")}}
- {{domxref("HTMLFontElement")}}
- {{domxref("HTMLFormElement")}}
- {{domxref("HTMLFrameElement")}}
- {{domxref("HTMLFrameSetElement")}}
- {{domxref("HTMLHeadElement")}}
- {{domxref("HTMLHeadingElement")}}
- {{domxref("HTMLHtmlElement")}}
- {{domxref("HTMLHRElement")}}
- {{domxref("HTMLIFrameElement")}}
- {{domxref("HTMLImageElement")}}
- {{domxref("HTMLInputElement")}}
- {{domxref("HTMLKeygenElement")}}
- {{domxref("HTMLLabelElement")}}
- {{domxref("HTMLLegendElement")}}
- {{domxref("HTMLLIElement")}}
- {{domxref("HTMLLinkElement")}}
- {{domxref("HTMLMapElement")}}
- {{domxref("HTMLMediaElement")}}
- {{domxref("HTMLMenuElement")}}
- {{domxref("HTMLMetaElement")}}
- {{domxref("HTMLMeterElement")}}
- {{domxref("HTMLModElement")}}
- {{domxref("HTMLObjectElement")}}
- {{domxref("HTMLOListElement")}}
- {{domxref("HTMLOptGroupElement")}}
- {{domxref("HTMLOptionElement")}}
- {{domxref("HTMLOutputElement")}}
- {{domxref("HTMLParagraphElement")}}
- {{domxref("HTMLParamElement")}}
- {{domxref("HTMLPreElement")}}
- {{domxref("HTMLProgressElement")}}
- {{domxref("HTMLQuoteElement")}}
- {{domxref("HTMLScriptElement")}}
- {{domxref("HTMLSelectElement")}}
- {{domxref("HTMLSourceElement")}}
- {{domxref("HTMLSpanElement")}}
- {{domxref("HTMLStyleElement")}}
- {{domxref("HTMLTableElement")}}
- {{domxref("HTMLTableCaptionElement")}}
- {{domxref("HTMLTableCellElement")}}
- {{domxref("HTMLTableDataCellElement")}}
- {{domxref("HTMLTableHeaderCellElement")}}
- {{domxref("HTMLTableColElement")}}
- {{domxref("HTMLTableRowElement")}}
- {{domxref("HTMLTableSectionElement")}}
- {{domxref("HTMLTextAreaElement")}}
- {{domxref("HTMLTimeElement")}}
- {{domxref("HTMLTitleElement")}}
- {{domxref("HTMLTrackElement")}}
- {{domxref("HTMLUListElement")}}
- {{domxref("HTMLUnknownElement")}}
- {{domxref("HTMLVideoElement")}}
Other interfaces
- {{domxref("CanvasRenderingContext2D")}}
- {{domxref("CanvasGradient")}}
- {{domxref("CanvasPattern")}}
- {{domxref("TextMetrics")}}
- {{domxref("ImageData")}}
- {{domxref("CanvasPixelArray")}}
- {{domxref("NotifyAudioAvailableEvent")}}
- {{domxref("HTMLAllCollection")}}
- {{domxref("HTMLFormControlsCollection")}}
- {{domxref("HTMLOptionsCollection")}}
- {{domxref("HTMLPropertiesCollection")}}
- {{domxref("DOMStringMap")}}
- {{domxref("RadioNodeList")}}
- {{domxref("MediaError")}}
Obsolete HTML interfaces {{obsolete_inline}}
- {{domxref("HTMLBaseFontElement")}}
- {{domxref("HTMLIsIndexElement")}}
SVG interfaces
SVG element interfaces
- {{domxref("SVGAElement")}}
- {{domxref("SVGAltGlyphElement")}} {{deprecated_inline}}
- {{domxref("SVGAltGlyphDefElement")}} {{deprecated_inline}}
- {{domxref("SVGAltGlyphItemElement")}} {{deprecated_inline}}
- {{domxref("SVGAnimationElement")}}
- {{domxref("SVGAnimateElement")}}
- {{domxref("SVGAnimateColorElement")}} {{deprecated_inline}}
- {{domxref("SVGAnimateMotionElement")}}
- {{domxref("SVGAnimateTransformElement")}}
- {{domxref("SVGCircleElement")}}
- {{domxref("SVGClipPathElement")}}
- {{domxref("SVGColorProfileElement")}} {{deprecated_inline}}
- {{domxref("SVGComponentTransferFunctionElement")}}
- {{domxref("SVGCursorElement")}}
- {{domxref("SVGDefsElement")}}
- {{domxref("SVGDescElement")}}
- {{domxref("SVGElement")}}
- {{domxref("SVGEllipseElement")}}
- {{domxref("SVGFEBlendElement")}}
- {{domxref("SVGFEColorMatrixElement")}}
- {{domxref("SVGFEComponentTransferElement")}}
- {{domxref("SVGFECompositeElement")}}
- {{domxref("SVGFEConvolveMatrixElement")}}
- {{domxref("SVGFEDiffuseLightingElement")}}
- {{domxref("SVGFEDisplacementMapElement")}}
- {{domxref("SVGFEDistantLightElement")}}
- {{domxref("SVGFEDropShadowElement")}}
- {{domxref("SVGFEFloodElement")}}
- {{domxref("SVGFEFuncAElement")}}
- {{domxref("SVGFEFuncBElement")}}
- {{domxref("SVGFEFuncGElement")}}
- {{domxref("SVGFEFuncRElement")}}
- {{domxref("SVGFEGaussianBlurElement")}}
- {{domxref("SVGFEImageElement")}}
- {{domxref("SVGFEMergeElement")}}
- {{domxref("SVGFEMergeNodeElement")}}
- {{domxref("SVGFEMorphologyElement")}}
- {{domxref("SVGFEOffsetElement")}}
- {{domxref("SVGFEPointLightElement")}}
- {{domxref("SVGFESpecularLightingElement")}}
- {{domxref("SVGFESpotLightElement")}}
- {{domxref("SVGFETileElement")}}
- {{domxref("SVGFETurbulenceElement")}}
- {{domxref("SVGFilterElement")}}
- {{domxref("SVGFilterPrimitiveStandardAttributes")}}
- {{domxref("SVGFontElement")}} {{deprecated_inline}}
- {{domxref("SVGFontFaceElement")}} {{deprecated_inline}}
- {{domxref("SVGFontFaceFormatElement")}} {{deprecated_inline}}
- {{domxref("SVGFontFaceNameElement")}} {{deprecated_inline}}
- {{domxref("SVGFontFaceSrcElement")}} {{deprecated_inline}}
- {{domxref("SVGFontFaceUriElement")}} {{deprecated_inline}}
- {{domxref("SVGForeignObjectElement")}}
- {{domxref("SVGGElement")}}
- {{domxref("SVGGeometryElement")}}
- {{domxref("SVGGlyphElement")}} {{deprecated_inline}}
- {{domxref("SVGGlyphRefElement")}} {{deprecated_inline}}
- {{domxref("SVGGradientElement")}}
- {{domxref("SVGGraphicsElement")}}
- {{domxref("SVGHatchElement")}} {{experimental_inline}}
- {{domxref("SVGHatchpathElement")}} {{experimental_inline}}
- {{domxref("SVGHKernElement")}} {{deprecated_inline}}
- {{domxref("SVGImageElement")}}
- {{domxref("SVGLinearGradientElement")}}
- {{domxref("SVGLineElement")}}
- {{domxref("SVGMarkerElement")}} {{experimental_inline}}
- {{domxref("SVGMaskElement")}}
- {{domxref("SVGMeshElement")}} {{experimental_inline}}
- {{domxref("SVGMeshGradientElement")}} {{experimental_inline}}
- {{domxref("SVGMeshpatchElement")}} {{experimental_inline}}
- {{domxref("SVGMeshrowElement")}} {{experimental_inline}}
- {{domxref("SVGMetadataElement")}}
- {{domxref("SVGMissingGlyphElement")}} {{deprecated_inline}}
- {{domxref("SVGMPathElement")}}
- {{domxref("SVGPathElement")}}
- {{domxref("SVGPatternElement")}}
- {{domxref("SVGPolylineElement")}}
- {{domxref("SVGPolygonElement")}}
- {{domxref("SVGRadialGradientElement")}}
- {{domxref("SVGRectElement")}}
- {{domxref("SVGScriptElement")}}
- {{domxref("SVGSetElement")}}
- {{domxref("SVGSolidcolorElement")}} {{experimental_inline}}
- {{domxref("SVGStopElement")}}
- {{domxref("SVGStyleElement")}}
- {{domxref("SVGSVGElement")}}
- {{domxref("SVGSwitchElement")}}
- {{domxref("SVGSymbolElement")}}
- {{domxref("SVGTextContentElement")}}
- {{domxref("SVGTextElement")}}
- {{domxref("SVGTextPathElement")}}
- {{domxref("SVGTextPositioningElement")}}
- {{domxref("SVGTitleElement")}}
- {{domxref("SVGTRefElement")}} {{deprecated_inline}}
- {{domxref("SVGTSpanElement")}}
- {{domxref("SVGUseElement")}}
- {{domxref("SVGUnknownElement")}} {{experimental_inline}}
- {{domxref("SVGViewElement")}}
- {{domxref("SVGVKernElement")}} {{deprecated_inline}}
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 ; in addition, they have a length property indicating the number of items in the lists: {{domxref("SVGLengthList")}}, {{domxref("SVGNumberList")}}, {{domxref("SVGPathSegList")}}, and {{domxref("SVGPointList")}}.
Static type
- {{domxref("SVGAngle")}}
- {{domxref("SVGColor")}} {{deprecated_inline}}
- {{domxref("SVGICCColor")}} {{deprecated_inline}}
- {{domxref("SVGElementInstance")}}
- {{domxref("SVGElementInstanceList")}}
- {{domxref("SVGLength")}}
- {{domxref("SVGLengthList")}}
- {{domxref("SVGMatrix")}} {{deprecated_inline}}
- {{domxref("SVGNameList")}}
- {{domxref("SVGNumber")}}
- {{domxref("SVGNumberList")}}
- {{domxref("SVGPaint")}}
- {{domxref("SVGPathSeg")}} {{deprecated_inline}}
- {{domxref("SVGPathSegClosePath")}} {{deprecated_inline}}
- {{domxref("SVGPathSegMovetoAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegMovetoRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoCubicAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoCubicRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoQuadraticAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoQuadraticRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegArcAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegArcRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoHorizontalAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoHorizontalRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoVerticalAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegLinetoVerticalRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoCubicSmoothAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoCubicSmoothRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoQuadraticSmoothAbs")}} {{deprecated_inline}}
- {{domxref("SVGPathSegCurvetoQuadraticSmoothRel")}} {{deprecated_inline}}
- {{domxref("SVGPathSegList")}} {{deprecated_inline}}
- {{domxref("SVGPoint")}} {{deprecated_inline}}
- {{domxref("SVGPointList")}} {{deprecated_inline}}
- {{domxref("SVGPreserveAspectRatio")}}
- {{domxref("SVGRect")}} {{deprecated_inline}}
- {{domxref("SVGStringList")}}
- {{domxref("SVGTransform")}}
- {{domxref("SVGTransformList")}}
Animated type
- {{domxref("SVGAnimatedAngle")}}
- {{domxref("SVGAnimatedBoolean")}}
- {{domxref("SVGAnimatedEnumeration")}}
- {{domxref("SVGAnimatedInteger")}}
- {{domxref("SVGAnimatedLength")}}
- {{domxref("SVGAnimatedLengthList")}}
- {{domxref("SVGAnimatedNumber")}}
- {{domxref("SVGAnimatedNumberList")}}
- {{domxref("SVGAnimatedPathData")}} {{deprecated_inline}}
- {{domxref("SVGAnimatedPoints")}}
- {{domxref("SVGAnimatedPreserveAspectRatio")}}
- {{domxref("SVGAnimatedRect")}}
- {{domxref("SVGAnimatedString")}}
- {{domxref("SVGAnimatedTransformList")}}
- {{domxref("ElementTimeControl")}}
- {{domxref("TimeEvent")}}
Other SVG interfaces
- {{domxref("GetSVGDocument")}}
- {{domxref("ShadowAnimation")}}
- {{domxref("SVGColorProfileRule")}} {{deprecated_inline}}
- {{domxref("SVGCSSRule")}} {{deprecated_inline}}
- {{domxref("SVGDocument")}}
- {{domxref("SVGException")}} {{deprecated_inline}}
- {{domxref("SVGExternalResourcesRequired")}} {{deprecated_inline}}
- {{domxref("SVGFitToViewBox")}}
- {{domxref("SVGLangSpace")}} {{deprecated_inline}}
- {{domxref("SVGLocatable")}} {{deprecated_inline}}
- {{domxref("SVGRenderingIntent")}} {{deprecated_inline}}
- {{domxref("SVGStylable")}} {{deprecated_inline}}
- {{domxref("SVGTests")}}
- {{domxref("SVGTransformable")}} {{deprecated_inline}}
- {{domxref("SVGUnitTypes")}}
- {{domxref("SVGUseElementShadowRoot")}}
- {{domxref("SVGURIReference")}}
- {{domxref("SVGViewSpec")}} {{deprecated_inline}}
- {{domxref("SVGZoomAndPan")}}
- {{domxref("SVGZoomEvent")}} {{deprecated_inline}}
See also