15 métodos JavaScript para manipulação de DOM para desenvolvedores da Web
Como desenvolvedor web, você freqüentemente precisa manipular DOM, o modelo de objeto usado pelos navegadores para especificar a estrutura lógica de páginas da Web e, com base nessa estrutura, renderizar elementos HTML na tela.
HTML define o estrutura DOM padrão. No entanto, em muitos casos, você pode querer manipular isso com JavaScript, geralmente para adicione funcionalidades extras para um site.
Neste post, você encontrará uma lista de 15 métodos básicos de JavaScript naquela ajuda DOM manipulação. Você provavelmente usaria esses métodos com frequência em seu código e também os encontraria em nossos tutoriais de JavaScript.
1. querySelector ()
o querySelector ()
método retorna o primeiro elemento que corresponde a um ou mais seletores CSS. Se nenhuma correspondência for encontrada, ela retornará nulo
.
Antes querySelector ()
foi introduzido, os desenvolvedores usaram amplamente o getElementById ()
método que busca um elemento com um identidade
valor.
Apesar getElementById ()
ainda é um método útil, mas com o mais recente querySelector ()
e querySelectorAll ()
métodos somos livres para elementos de destino com base em qualquer seletor de CSS, Assim, temos mais flexibilidade.
Sintaxe
var ele = document.querySelector (selector);
ele
- Primeiro elemento correspondente ounulo
(se nenhum elemento corresponder aos seletores)seletor
- um ou mais seletores CSS, como"#fooId"
,".fooClassName"
,".class1.class2"
, ou".class1, .class2"
Exemplo de código
Neste exemplo, o primeiro parágrafo um parágrafo dois parágrafo terceiro Teste o Ao contrário Os elementos correspondentes são retornados como O exemplo abaixo usa o mesmo HTML que o anterior. No entanto, neste exemplo, todos os parágrafos são selecionados com parágrafo um parágrafo dois parágrafo terceiro Eventos Consulte o que acontece com um elemento HTML, como clicar, focalizar ou carregar, ao qual podemos reagir com JavaScript. Podemos atribuir funções JS para ouço para esses eventos em elementos e fazer alguma coisa quando o evento ocorreu. Existem três maneiras que você pode atribuir uma função a um determinado evento. E se O método Impede que o evento borbulhe, isto é, impede a chamada de qualquer ouvinte de evento para o mesmo tipo de evento nos ancestrais do elemento. Para usar esse recurso, você pode usar duas sintaxes: O ouvinte é chamado apenas na primeira vez que o evento acontece e, em seguida, ele é automaticamente desconectado do evento e não será mais acionado por ele.. A ação padrão do evento não pode ser interrompida com o método preventDefault (). Neste exemplo, adicionamos um ouvinte de evento de clique chamado Atribuir o o Usa a mesma sintaxe da acima mencionada Seguindo o exemplo de código, usamos em o Mais tarde, você pode adicionar esse elemento à página da Web usando métodos para inserção de DOM, tal como Com o exemplo a seguir, você pode criar um novo elemento de parágrafo: o A criança a ser inserida pode ser um elemento recém-criado, ou um já existente. Neste último caso, ele será movido de sua posição anterior para a posição do último filho. Neste exemplo, inserimos um Na seguinte demonstração interativa, cartas de Confira como o o Neste exemplo, removemos o o Neste exemplo, o elemento filho Quando você tem que criar um novo elemento que precisa ser o mesmo que um elemento já existente na página da web, você pode simplesmente criar uma cópia do elemento já existente usando o Neste exemplo, criamos uma cópia para o Como um resultado, o Se o elemento filho referenciado não existir ou você passar explicitamente Neste exemplo, criamos um novo Esta demonstração interativa funciona de forma semelhante ao nosso demo anterior pertencente ao o isto cria um Por que não adicionamos elementos diretamente à árvore DOM? Porque a inserção de DOM provoca alterações de layout, e é um processo caro do navegador já que múltiplas inserções de elementos conseqüentes causam mais alterações de layout. Por outro lado, adicionar elementos a um Neste exemplo, criamos várias linhas e células da tabela com o Como resultado, cinco linhas - cada uma delas contendo uma célula com um número de 1 a 5 como conteúdo - serão inseridas dentro da tabela.. Às vezes você quer verifique os valores da propriedade CSS de um elemento antes de fazer qualquer alteração. Você pode usar o Neste exemplo, obtemos e alertamos o computador o Neste exemplo, adicionamos o o Neste exemplo, alertamos o valor do o Neste exemplo, removemos o querySelector ()
método e sua cor é alterada para vermelho.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'vermelho';
Demonstração Interativa
querySelector ()
método na demonstração interativa a seguir. Basta digitar um seletor correspondente aos que você pode encontrar dentro das caixas azuis (por exemplo,. #três
) e clique no botão Selecionar. Note que se você digitar .quadra
, apenas sua primeira instância será selecionado.2.
querySelectorAll ()
querySelector ()
que retorna apenas a primeira instância de todos os elementos correspondentes, querySelectorAll ()
retorna todos os elementos que correspondem ao seletor de CSS especificado.NodeList
objeto que será um objeto vazio se nenhum elemento correspondente for encontrado.Sintaxe
var eles = document.querySelectorAll (seletor);
eles
- UMA NodeList
Objeto com todos os elementos correspondentes como valores de propriedade. O objeto está vazio se nenhuma correspondência for encontrada.seletor
- um ou mais seletores CSS, como "#fooId"
, ".fooClassName"
, ".class1.class2"
, ou ".class1, .class2"
Exemplo de código
querySelectorAll ()
, e são de cor azul.
var paragraph = document.querySelectorAll ('p'); para (var p de parágrafos) p.style.color = 'blue';
3.
addEventListener ()
foo ()
é uma função personalizada, você pode registrá-la como ouvinte de evento de clique (chame quando o elemento do botão for clicado) de três maneiras:
var btn = document.querySelector ('button'); btn.onclick = foo;
var btn = document.querySelector ('button'); btn.addEventListener ('clique', foo);
addEventListener ()
(a terceira solução) alguns pros; é o padrão mais recente - permitindo a atribuição de mais de uma função como ouvintes de evento para um evento - e vem com um conjunto útil de opções.Sintaxe
ele.addEventListener (evt, ouvinte, [opções]);
ele
- O elemento HTML que o ouvinte de evento estará escutando.evt
- O evento segmentado.ouvinte
- Normalmente, uma função JavaScript.opções
- (opcional) Um objeto com um conjunto de propriedades booleanas (listadas abaixo).Opções O que acontece quando é definido como verdade
?capturar
ele.addEventListener (evt, ouvinte, verdadeiro)
ele.addEventListener (evt, listener, capture: true);
uma vez
passiva
Exemplo de código
foo
, ao Tag HTML.
var btn = document.querySelector ('button'); btn.addEventListener ('clique', foo); function foo () alert ('olá');
Demonstração Interativa
foo ()
função personalizada como ouvinte de evento para qualquer um dos três eventos a seguir: entrada
, clique
ou passe o rato por cima
& acione o evento escolhido no campo de entrada inferior, passando o cursor do mouse ou clicando nele.4.
removeEventListener ()
removeEventListener ()
método separa um ouvinte de evento previamente adicionado com o addEventListener ()
método do evento que está ouvindo.Sintaxe
ele.removeEventListener (evt, ouvinte, [opções]);
addEventListener ()
método (exceto para o uma vez
opção excluída). As opções são usadas para serem muito específicas sobre como identificar o ouvinte a ser desanexado.Exemplo de código
addEventListener ()
, aqui removemos o ouvinte de evento de clique chamado foo
de elemento.
btn.removeEventListener ('click', foo);
5.
createElement ()
createElement ()
método cria um novo elemento HTML usando o nome da tag HTML a ser criado, como 'p'
ou 'div'
.AppendChild ()
(veja mais adiante neste post).Sintaxe
document.createElement (tagName);
tagName
- O nome da tag HTML que você deseja criar. Exemplo de código
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
método adiciona um elemento como o último filho para o elemento HTML que invoca esse método.Sintaxe
ele.appendChild (childEle)
ele
- O elemento HTML ao qual childEle
é adicionado como seu último filho.childEle
- O elemento HTML adicionado como o último filho de ele
.Exemplo de código
elemento é como o filho de um
appendChild ()
e o acima mencionado createElement ()
métodos.
var div = document.querySelector ('div'); var strong = document.createElement ('forte'); strong.textContent = 'Olá'; div.appendChild (forte);
Demonstração Interativa
#uma
para #r
são os elementos filhos do # pai-um
, # pai-dois
, e # parent-three
seletores de id.appendChild ()
método funciona por digitando um pai e um nome de seletor filho nos campos de entrada abaixo. Você pode escolher crianças pertencentes a outro pai também.7.
removeChild ()
removeChild ()
método remove um elemento filho especificado do elemento HTML que chama esse método.Sintaxe
ele.removeChild (childEle)
ele
- O elemento pai de childEle
.childEle
- O elemento filho de ele
.Exemplo de código
elemento que nós adicionamos como uma criança ao
appendChild ()
método. div.removeChild (forte);
8.
replaceChild ()
replaceChild ()
método substitui um elemento filho por outro pertencente ao elemento pai que chama esse método.Sintaxe
ele.replaceChild (newChildEle, oldChileEle)
ele
- Elemento pai de que as crianças devem ser substituídas.newChildEle
- Elemento filho de ele
que irá substituir oldChildEle
.oldChildEle
- Elemento filho de ele
, que será substituído por newChildEle
.Exemplo de código
pertencente ao
tag.
var em = document.createElement ('em'); var strong = document.querySelector ('forte'); var div = document.querySelector ('div'); em.textContent = 'oi'; div.replaceChild (em, forte);
9.
cloneNode ()
cloneNode ()
método.Sintaxe
var dupeEle = ele.cloneNode ([deep])
dupeEle
- Cópia do ele
elemento.ele
- O elemento HTML a ser copiado.profundo
- (opcional) Um valor booleano. Se estiver definido para verdade
, dupeEle
terá todos os elementos filhos ele
tem, se está definido para falso
será clonado sem seus filhos.Exemplo de código
elemento com
cloneNode ()
, então nós adicionamos ao appendChild ()
método. elementos, ambos com o
Olá
string como conteúdo.
var strong = document.querySelector ('forte'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (copy);
10.
insertBefore ()
insertBefore ()
método adiciona um elemento filho especificado antes de outro elemento filho. O método é chamado pelo elemento pai.nulo
em seu lugar, o elemento filho a ser inserido é adicionado como o último filho do pai (igual a appendChild ()
).Sintaxe
ele.insertBefore (newEle, refEle);
ele
- Elemento pai.newEle
- Novo elemento HTML a ser inserido.REFERIR
- Um elemento filho de ele
antes que newEle
será inserido.Exemplo de código
elemento com algum texto dentro e adicioná-lo antes a
elemento dentro do
var em = document.createElement ('em'); var strong = document.querySelector ('forte'); var div = document.querySelector ('div'); em.textContent = 'oi'; div.insertBefore (em, forte);
Demonstração Interativa
appendChild ()
método. Aqui você só precisa digitar os seletores de id de dois elementos filho (de #uma
para #r
) nas caixas de entrada, e você pode ver como o insertBefore ()
método move a primeira criança especificada antes o segundo.11.
createDocumentFragment ()
createDocumentFragment ()
método pode não ser tão conhecido como os outros nesta lista, mas é importante, especialmente se você quiser insira vários elementos a granel, como adicionar várias linhas a uma tabela.DocumentFragment
objeto, que essencialmente é um nó DOM que não faz parte da árvore DOM. É como um buffer onde podemos adicionar e armazenar outros elementos (por exemplo, várias linhas) primeiro, antes de adicioná-los ao nó desejado na árvore DOM (por exemplo, para uma tabela).DocumentFragment
objeto não causa alterações de layout, para que você possa adicionar quantos elementos desejar antes de passá-los para a árvore DOM, causando uma alteração de layout apenas neste ponto.Sintaxe
document.createDocumentFragment ()
Exemplo de código
createElement ()
método, em seguida, adicioná-los a um DocumentFragment
objeto, finalmente, adicionar esse fragmento de documento para um HTML usando o
appendChild ()
método.
var table = document.querySelector ("table"); var df = document.createDocumentFragment (); para (var i = 0; i<5; i++) var td = document.createElement("td"); var tr = document.createElement("tr"); td.textContent = i; tr.appendChild(td) df.appendChild(tr); table.appendChild(df);
12.
getComputedStyle ()
ele.style
propriedade para fazer o mesmo, no entanto, o getComputedStyle ()
método foi feito apenas para este propósito, retorna os valores calculados somente leitura de todas as propriedades CSS de um elemento HTML especificado.Sintaxe
var style = getComputedStyle (ele, [pseudoEle])
estilo
- UMA CSSStyleDeclaration
objeto retornado pelo método. Ele contém todas as propriedades CSS e seus valores do ele
elemento.ele
- O elemento HTML do qual os valores da propriedade CSS são buscados.pseudoEle
- (opcional) Uma string que representa um pseudoelemento (por exemplo, ':depois de'
). Se isso for mencionado, as propriedades CSS do pseudoelemento especificado associado a ele
será retornado.Exemplo de código
largura
valor de um getComputedStyle ()
método.
var style = getComputedStyle (document.querySelector ('div')); alerta (style.width);
13.
setAttribute ()
setAttribute ()
método ou adiciona um novo atributo para um elemento HTML ou atualiza o valor de um atributo que já existe.Sintaxe
ele.setAttribute (nome, valor);
ele
- O elemento HTML ao qual um atributo é adicionado ou cujo atributo é atualizado.nome
- O nome do atributo.valor
- o valor do atributo.Exemplo de código
contenteditable
atribuir a um setAttribute ()
método, que irá transformar o seu conteúdo editável. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
método retorna o valor de um atributo especificado pertencente a um determinado elemento HTML.Sintaxe
ele.getAttribute (nome);
ele
- O elemento HTML de qual atributo é solicitado.nome
- O nome do atributo.Exemplo de código
contenteditable
atributo pertencente ao getAttribute ()
método. var div = document.querySelector ('div'); alert (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
método remove um determinado atributo de um elemento HTML específico.Sintaxe
ele.removeAttribute (nome);
ele
- O elemento HTML de qual atributo deve ser removido.nome
- O nome do atributo.Exemplo de código
contenteditable
atributo do var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');