search ]

Working with JavaScript appendChild: Examples & Best Practices

The appendChild method in JavaScript is used to add a node to the end of the list of children of a specified parent node. This method is fundamental for dynamically manipulating the Document Object Model (DOM) in web development.


The basic syntax of the appendChild method is as follows:


Here, parentNode is the node to which you want to add a child, and childNode is the node you want to add.

Practical Examples

Let’s explore some practical examples to understand how the appendChild method works.

Example 1: Adding a New Element to the DOM

In this example, we will create a new div element and append it to an existing div with the id container.

<div id="myContainer">
    <div>This is the container.</div>

    // Create a new div element
    const newDiv = document.createElement('div');
    // Add content to the new div
    newDiv.textContent = 'This is a new div element';
    // Append the new div to the existing container div

Click the button for live example:

This is the container.

Example 2: Appending Multiple Elements

We can also append multiple elements. In this example, we will create a list of items and append them to an unordered list (ul).

<ul id="itemList"></ul>

    const itemList = document.getElementById('itemList');
    const items = ['Item 1', 'Item 2', 'Item 3'];

    items.forEach(itemText => {
        const listItem = document.createElement('li');
        listItem.textContent = itemText;

Click the button for live example:

    Example 3: Creating a Complex Element Structure

    In this example, we will create a complex structure: a card component with a title, image, and description, and append it to an existing container div.

    <div id="cardContainer"></div>
        // Create the card element
        const card = document.createElement('div');
        card.className = 'card';
        // Create the card title
        const cardTitle = document.createElement('h2');
        cardTitle.textContent = 'Card Title';
        // Create the card image
        const cardImage = document.createElement('img');
        cardImage.src = '';
        cardImage.alt = 'Card Image';
        // Create the card description
        const cardDescription = document.createElement('p');
        cardDescription.textContent = 'This is a description of the card.';
        // Append the card to the container

    Click the button for live example:

    Use Cases and Best Practices

    The appendChild method is particularly useful in scenarios where you need to dynamically update the DOM, such as:

    • Adding new comments to a comment section.
    • Appending items to a shopping cart.
    • Generating a dynamic list of search results.

    When using appendChild, it is important to remember that:

    • The node to be appended is removed from its current parent before being added to the new parent.
    • It is generally more efficient to create a document fragment, append multiple nodes to the fragment, and then append the fragment to the DOM in one operation to minimize reflows and repaints.

    Performance Considerations

    Frequent DOM manipulations can impact performance. To mitigate this, consider the following tips:

    • Minimize direct DOM manipulations. Batch changes using a document fragment.
    • Use appendChild in conjunction with other methods like createElement and createTextNode for more complex structures.
    • Keep an eye on browser performance tools to monitor the impact of your scripts.

    Using a document fragment involve creating a lightweight, in-memory representation of a DOM structure (a document fragment) and making all necessary modifications to this fragment before attaching it to the actual DOM. This approach minimizes reflows and repaints, improving performance by reducing the number of times the browser needs to update the layout and rendering.


    The appendChild method is a versatile tool in JavaScript for dynamically updating the DOM. By understanding its syntax and use cases, you can efficiently manipulate web page content to create dynamic, interactive user experiences.

    Remember to follow best practices and performance tips to ensure smooth operation and responsiveness of your web applications.

    Roee Yossef
    Roee Yossef

    I develop custom WordPress themes by design. I love typography, colors & everything between, and aim to provide high performance, seo optimized websites with a clean & semantic code.


    Leave a Comment

    Add code using the buttons below. For example, to add PHP click the PHP button & add the code inside the shortcode. Typo? Please let us know...