Skip to main content

O que é o Document Object Model (DOM)?

O DOM (Document Object Model) é uma API que permite que você manipule o conteúdo de uma página da web. É uma interface de programação de aplicativos (API) para documentos HTML e XML. Ele fornece uma representação estruturada do documento como um conjunto de nós e objetos que possuem propriedades e métodos. Os nós também podem ter manipuladores de eventos para notificar o código quando eventos ocorrem, como cliques do mouse, pressionamentos de tecla ou alterações de formulário. O DOM define métodos que permitem acesso à árvore, para que eles possam alterar a estrutura, estilo ou conteúdo do documento.

O DOM é uma representação orientada a objetos do documento da web, que pode ser modificada com um script. Pode ser acessado por qualquer linguagem de programação compatível com ECMAScript, como JavaScript. O DOM é especificado pela W3C (World Wide Web Consortium).

O JavaScript fornece uma variedade de métodos para acessar e alterar o DOM.

Selecionando elementos

Você pode selecionar elementos usando os métodos document.getElementById, document.getElementsByClassName, document.getElementsByTagName e document.querySelector.

document.getElementById

O método document.getElementById retorna o primeiro elemento que possui o atributo id com o valor especificado.

let elemento = document.getElementById('elemento');

document.getElementsByClassName

O método document.getElementsByClassName retorna uma coleção de elementos que possuem o atributo class com o valor especificado.

let elementos = document.getElementsByClassName('elemento');

document.getElementsByTagName

O método document.getElementsByTagName retorna uma coleção de elementos que possuem a tag especificada.

let elementos = document.getElementsByTagName('div');

document.querySelector

O método document.querySelector retorna o primeiro elemento que corresponde ao seletor especificado. Aqui é possível passar diferentes tipos de seletores, como #id, .class e tag.

let elemento = document.querySelector('#elemento');
let elemento2 = document.querySelector('.class');
let elemento3 = document.querySelector('[data-id-test="foo"');

Manipulando elementos

Você pode manipular elementos usando os métodos appendChild, removeChild, replaceChild, insertBefore, cloneNode, createElement, createTextNode, setAttribute e removeAttribute.

appendChild

O método appendChild adiciona um nó como o último filho de um elemento.

let elemento = document.getElementById('elemento');

let novoElemento = document.createElement('div');

elemento.appendChild(novoElemento);

removeChild

O método removeChild remove um nó filho de um elemento.

let elemento = document.getElementById('elemento');

let filho = document.getElementById('filho');

elemento.removeChild(filho);

replaceChild

O método replaceChild substitui um nó filho de um elemento por outro nó.

let elemento = document.getElementById('elemento');

let novoFilho = document.createElement('div');

let filho = document.getElementById('filho');

elemento.replaceChild(novoFilho, filho);

insertBefore

O método insertBefore insere um nó antes de um nó filho de um elemento.

let elemento = document.getElementById('elemento');

let novoElemento = document.createElement('div');

let filho = document.getElementById('filho');

elemento.insertBefore(novoElemento, filho);

cloneNode

O método cloneNode retorna uma cópia de um nó.

let elemento = document.getElementById('elemento');

let clone = elemento.cloneNode(true);

createElement

O método createElement cria um elemento com a tag especificada.

let elemento = document.createElement('div');

createTextNode

O método createTextNode cria um nó de texto com o texto especificado.

let texto = document.createTextNode('Hello World');

setAttribute

O método setAttribute define o valor de um atributo em um elemento.

let elemento = document.getElementById('elemento');

elemento.setAttribute('id', 'novo-id');

removeAttribute

O método removeAttribute remove um atributo de um elemento.

let elemento = document.getElementById('elemento');

elemento.removeAttribute('id');

Referências