← Back to all snippets
JAVASCRIPT

Precisely Inserting Elements with `insertAdjacentElement()`

Master how to insert new DOM elements at specific positions relative to an existing element (before, after, beginning of, end of) using the versatile `insertAdjacentElement()` method.

// HTML Structure example:
// <div id="container">
//   <p id="existing-paragraph">This is an existing paragraph.</p>
// </div>

const container = document.getElementById('container');
const existingParagraph = document.getElementById('existing-paragraph');

// Create a new element to insert
const newParagraph = document.createElement('p');
newParagraph.textContent = 'This paragraph is inserted AFTER the existing one.';
newParagraph.style.color = 'blue';

// Insert the new paragraph right after the existing one
existingParagraph.insertAdjacentElement('afterend', newParagraph);

// Create another element for demonstration
const newHeader = document.createElement('h3');
newHeader.textContent = 'A new header inserted BEFORE the existing paragraph.';
newHeader.style.color = 'red';

// Insert the new header right before the existing paragraph
existingParagraph.insertAdjacentElement('beforebegin', newHeader);

// You can also use 'afterbegin' and 'beforeend' on a parent element
const anotherParagraph = document.createElement('p');
anotherParagraph.textContent = 'This goes to the end of the container.';
container.insertAdjacentElement('beforeend', anotherParagraph);
How it works: `insertAdjacentElement()` is a powerful method for inserting a given element node at a specified position relative to the element on which it is invoked. It takes two arguments: a position string ('beforebegin', 'afterbegin', 'beforeend', 'afterend') and the element to insert. This provides more granular control over where an element is placed compared to `appendChild()`, which only appends to the end of a parent, or `insertBefore()`, which requires knowing a reference child.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs