JavaScript - Document Object Model ou DOM

Cada página da web reside dentro de uma janela do navegador que pode ser considerada um objeto.

Um objeto Document representa o documento HTML que é exibido nessa janela. O objeto Document possui várias propriedades que se referem a outros objetos que permitem o acesso e a modificação do conteúdo do documento.

A forma como o conteúdo de um documento é acessado e modificado é chamada de Document Object Model, ou DOM. Os objetos são organizados em uma hierarquia. Essa estrutura hierárquica se aplica à organização de objetos em um documento da web.

  • Window object- Topo da hierarquia. É o elemento mais externo da hierarquia de objetos.

  • Document object- Cada documento HTML que é carregado em uma janela se torna um objeto de documento. O documento contém o conteúdo da página.

  • Form object - Tudo dentro das marcas <form> ... </form> define o objeto do formulário.

  • Form control elements - O objeto de formulário contém todos os elementos definidos para esse objeto, como campos de texto, botões, botões de opção e caixas de seleção.

Aqui está uma hierarquia simples de alguns objetos importantes -

Existem vários DOMs. As seções a seguir explicam cada um desses DOMs em detalhes e descrevem como você pode usá-los para acessar e modificar o conteúdo do documento.

  • O legado DOM - este é o modelo que foi introduzido nas primeiras versões da linguagem JavaScript. É bem suportado por todos os navegadores, mas permite acesso apenas a certas partes importantes dos documentos, como formulários, elementos de formulário e imagens.

  • O DOM W3C - Este modelo de objeto de documento permite acesso e modificação de todo o conteúdo do documento e é padronizado pelo World Wide Web Consortium (W3C). Este modelo é compatível com quase todos os navegadores modernos.

  • O DOM IE4 - este modelo de objeto de documento foi introduzido na versão 4 do navegador Internet Explorer da Microsoft. O IE 5 e as versões posteriores incluem suporte para a maioria dos recursos básicos do W3C DOM.

Compatibilidade DOM

Se você deseja escrever um script com a flexibilidade de usar W3C DOM ou IE 4 DOM, dependendo de sua disponibilidade, você pode usar uma abordagem de teste de capacidade que primeiro verifica a existência de um método ou propriedade para determinar se o navegador a capacidade que você deseja. Por exemplo -

if (document.getElementById) {
   // If the W3C method exists, use it
} else if (document.all) {
   // If the all[] array exists, use it
} else {
   // Otherwise use the legacy DOM
}