Javascript
Ação sobre o HTML (DOM)
Para alterar qualquer elemento de uma página web, as funções de JavaScript precisam ter acesso a todos os elementos do arquivo HTML. O Document Object Model, ou simplesmente DOM, viabiliza este acesso. Provê os métodos e propriedades necessários ao acréscimo, remoção ou mudança de status dos elementos.
Todos os elementos bem como os próprios textos e atributos da linguagem HTML, podem ser criados, acessados, modificados, substituídos ou apagados através destas especificações.
■ As especificações do DOM foram criadas para permitir que qualquer linguagem de programação possa ler e alterar arquivos XML. Na medida em que a grafia de XHTML é XML reconhecido como HTML, o DOM pode ser utilizado pelas instruções de Javascript para ler documentos em formato HTML.
■ O DOM considera todos os elementos de um arquivo HTML como nós, até mesmo o próprio documento. Deste modo, as marcações <body>, <p>, e mesmo <br />,constituem nós de elementos; os textos inseridos dentro dos elementos são nós de textos; atributos de HTML como ID são nós de atributos e até os comentários são nós de comentários.
■ Os nós se estruturam hierarquicamente. Por exemplo: a frase
Vovô viu a uva
É composta, em HTML por um nó de elemento <p> e pelo nó de texto "Vovô viu a uva". Neste caso, o nó de elemento, é hierarquicamente superior ("parent") ao nó de texto, na medida em que o contém.
■ Todos os nós das páginas estruturadas em HTML se relacionam entre si através de relações hierárquicas, formando uma árvore. Muitos elementos contêm nós subordinados (ou "filhos"). O nó <head>, por exempo tem pelo menos um nó subordinado, <title>. Por sua vez, o nó <title> contém um nó de texto como "filho".
Alguns nós têm a mesma posição na hierarquia, como <h1> e <p>, na medida em que ambos são nós do nó <body>.
Os nós podem ter descendentes e ancestrais. Os descendentes são os "filhos" de um nó, ou filhos dos seus filhos. Por exemplo, todos os nós de texto são descendentes do nó <html>, já os nós de texto depois do nó <head> são descendentes do nó <body>.
Os ancestrais, ao contrário dos descendentes, são "pais" de um nó, ou pais dos seus pais. Todos os nós de texto têm o nó do elemento <html> como ancestral.
■ Esta estrutura hierárquica em árvore permite que os scripts de Javascript, através do DOM, provoquem alterações nos elementos. Permite a sua mudança de posição, a criação e inserção de novos elementos na estrutura, como textos na barra de status, dados obtidos de scripts XMLHttpRequest script (ver Ajax), elementos que reagem à ação dos usuários.
É possível até mesmo a reestruturação completa de uma página HTML, apenas removendo e acrescentando nós e aplicando estilos CSS.
■ As especificações do DOM e seu modo de estruturar os elementos de uma página web são a base das ações realizadas pelo Javacript, na medida em que criam "comportamentos" padrões para cada um, a partir das suas redes de relações internas.
■ Como as empresas desenvolvedoras dos principais browsers consideram as especificações do Level 1 DOM specification, publicadas pelo W3C em 1998, os problemas de incompatibilidade dos scripts entre os diferentes programas estão praticamente superados.
Assuntos relacionados
► Ajax
► Java
► Acessibilidade
► CSS
Referências
► PPK on JavaScript: The DOM - Part 1 (WebReference, acesso em 12.11.2006)
Mais informação sobre o assunto (link externo)
► Accessing form data via JavaScript and the DOM (TechRepublic, acesso em 20.11.2007)