Como inserir um elemento após o outro elemento em JavaScript
Neste artigo você vai aprender a como inserir um elemento após o outro elemento em JavaScript, manipulando o DOM de uma forma super simples

Fala programador(a), beleza? Bora aprender mais sobre DOM e JavaScript!
Em JavaScript só temos métodos para inserir elementos antes de um outro elemento, que é o insertBefore
Porém a partir deste método e também de outros recursos de JS podemos criar o insertAfter, que não é nativo da linguagem
A nossa função aceitará um elemento que será o a ser inserido e também um segundo argumento para um nó de referência
Este nó de referência é o elemento que terá um elemento inserido após ele
Veja como fica o método:
function insertAfter(newElement, reference) {
reference.parentNode.insertBefore(newElement, reference.nextSibling);
}
/* Testando */
const el = document.createElement("p")
el.innerHTML = "Testando";
const div = document.querySelector("#test");
insertAfter(el, div);
O nosso método insertAfter funciona da seguinte maneira:
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Acessamos o nó pai do elemento de referência, utilizando o método insertBefore para inserir um novo elemento
Porém como o segundo parâmetro dessa função é o irmão da referência, acaba que o efeito é inserir o elemento após o outro
Como é o verdadeiro intuito deste post
Veja a exemplificação na prática, após a definição da função
Teremos um <p> após a tag <div> com id de #test
Conclusão
Neste artigo você aprendeu a como inserir um elemento após o outro elemento em JavaScript
Criamos uma nova função, pois esta funcionalidade não existe em JavaScript ainda
Utilizamos como base desta função outros métodos de DOM, como: insertBefore e nextSibiling
Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!
Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!
Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias
O link acima contém um cupom de desconto para os cursos!
Quando você vai precisar disso na prática?
Vale entender o porquê antes de sair decorando a função, né?
Mensagem de erro embaixo de um input: o campo já está na tela e você quer o aviso logo depois dele, não jogado no fim do formulário
Item novo em uma lista, entrando logo abaixo do item em que o usuário clicou
Um bloco de conteúdo depois de um parágrafo específico, tipo aviso, banner ou card
Repara no que esses casos têm em comum: você não sabe qual é o próximo elemento, e nem quer saber
Você só sabe quem é o vizinho de cima
E é exatamente esse o trabalho do insertAfter 🙂
Cuidado com o nó pai:
Repara numa coisa na nossa função: ela depende do parentNode do elemento de referência
Que parentNode? É o elemento que envolve a referência na árvore do DOM, tipo a div que está em volta do seu p
Se a referência não estiver na página, não existe esse pai pra receber a inserção, e a função quebra na hora
O caso clássico é o querySelector não achar nada e devolver null, o famoso script rodando antes do HTML existir
Dá pra blindar com uma linha só:
function insertAfter(newElement, reference) {
if (!reference || !reference.parentNode) return
reference.parentNode.insertBefore(newElement, reference.nextSibling)
}
Simples assim, e você foge daquele erro chato que aparece numa linha que parecia certinha 😀
Inserindo vários elementos de uma vez:
Agora vem a pegadinha que pega quase todo mundo
Se você chamar o insertAfter várias vezes usando SEMPRE a mesma referência, cada elemento novo entra grudado logo depois dela
Resultado: o último que você inseriu aparece em primeiro, e a sua lista sai de trás pra frente
const div = document.querySelector("#test")
let referencia = div
itens.forEach(function (texto) {
const p = document.createElement("p")
p.innerHTML = texto
insertAfter(p, referencia)
referencia = p
})
Se liga na última linha do loop: a referência passa a ser o elemento que acabou de entrar
Assim a ordem sai igualzinha à do seu array
Bora testar? Troca os textos do array e olha a árvore no inspetor do navegador
Leia também
Quando você vai precisar disso na prática?
Vale entender o porquê antes de sair decorando a função, né?
Mensagem de erro embaixo de um input: o campo já está na tela e você quer o aviso logo depois dele, não jogado no fim do formulário
Item novo em uma lista, entrando logo abaixo do item em que o usuário clicou
Um bloco de conteúdo depois de um parágrafo específico, tipo aviso, banner ou card
Repara no que esses casos têm em comum: você não sabe qual é o próximo elemento, e nem quer saber
Você só sabe quem é o vizinho de cima
E é exatamente esse o trabalho do insertAfter 🙂
Cuidado com o nó pai:
Repara numa coisa na nossa função: ela depende do parentNode do elemento de referência
Que parentNode? É o elemento que envolve a referência na árvore do DOM, tipo a div que está em volta do seu p
Se a referência não estiver na página, não existe esse pai pra receber a inserção, e a função quebra na hora
O caso clássico é o querySelector não achar nada e devolver null, o famoso script rodando antes do HTML existir
Dá pra blindar com uma linha só:
function insertAfter(newElement, reference) {
if (!reference || !reference.parentNode) return
reference.parentNode.insertBefore(newElement, reference.nextSibling)
}
Simples assim, e você foge daquele erro chato que aparece numa linha que parecia certinha 😀
Inserindo vários elementos de uma vez:
Agora vem a pegadinha que pega quase todo mundo
Se você chamar o insertAfter várias vezes usando SEMPRE a mesma referência, cada elemento novo entra grudado logo depois dela
Resultado: o último que você inseriu aparece em primeiro, e a sua lista sai de trás pra frente
const div = document.querySelector("#test")
let referencia = div
itens.forEach(function (texto) {
const p = document.createElement("p")
p.innerHTML = texto
insertAfter(p, referencia)
referencia = p
})
Se liga na última linha do loop: a referência passa a ser o elemento que acabou de entrar
Assim a ordem sai igualzinha à do seu array
Bora testar? Troca os textos do array e olha a árvore no inspetor do navegador
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
