DOM Объектная модель документа

DOM HTML древо

Объектная модель документа (DOM) - это программный API для документов HTML и XML. Она определяет логическую структуру документов и способ доступа к документу и манипулирования им. В спецификации DOM термин «документ» используется в широком смысле - все чаще XML используется как способ представления многих различных видов информации, которая может храниться в различных системах, и большая часть этой информации традиционно рассматривается как данные, а не как документы. Тем не менее, XML представляет эти данные в виде документов, и DOM может использоваться для управления этими данными.

С помощью объектной модели документа программисты могут создавать и строить документы, ориентироваться в их структуре, добавлять, изменять или удалять элементы и содержимое. Все, что находится в документе HTML или XML, может быть доступно, изменено, удалено или добавлено с помощью объектной модели документа, за некоторыми исключениями - в частности, интерфейсы DOM для внутреннего подмножества и внешнего подмножества еще не определены.

Как спецификация W3C, одной из важных задач объектной модели документа является предоставление стандартного интерфейса программирования, который может использоваться в самых разных средах и приложениях. Объектная модель документа может быть использована с любым языком программирования. Для того чтобы обеспечить точную, независимую от языка спецификацию интерфейсов объектной модели документа, мы решили определить спецификации в OMG IDL, как это определено в спецификации CORBA 2.2. В дополнение к спецификации OMG IDL мы предоставляем языковые привязки для Java и ECMAScript (стандартный язык сценариев, основанный на JavaScript и JScript).

Например, DOM определяет, что метод querySelectorAll в этом фрагменте кода должен возвращать список всех элементов <p> в документе:

const paragraphs = document.querySelectorAll("p");
// paragraphs[0] is the first <p> element
// paragraphs[1] is the second <p> element, etc.
alert(paragraphs[0].nodeName);

Примечание: OMG IDL используется только как независимый от языка и нейтральный к реализации способ спецификации интерфейсов.

Могут быть использованы различные другие IDL; использование OMG IDL не подразумевает требования использования конкретной среды исполнения для связывания объектов.

Источники