DEV Community

_Khojiakbar_
_Khojiakbar_

Posted on

Dynamic DOM Element Creation : <template>

In HTML

  1. Create parent div
    <!---------------  Parent div -------------->
    <div id="parent" class="card m-5 mx-auto" >
        <h1>Hello Template</h1>
    </div>
Enter fullscreen mode Exit fullscreen mode
  1. Create template:
<!----------------- Template tag ------------>
    <template id="template">
        <div class="card d-flex">
            <img id="temp-img" src="https://picsum.photos/id/293/100/100" alt="smth">
            <h1>Template title</h1>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi, architecto dolor eius fugiat incidunt ipsa iure iusto officiis recusandae rerum!</p>
        </div>
    </template>
Enter fullscreen mode Exit fullscreen mode

In CSS:

#parent{
    width: 43%;
}
.card {
    width:500px;
    padding: 20px;
}
.card h1{
    font-size: 50px;
}
#temp-img {
    margin: 0 auto;
    width: 400px;
    height: 300px;
}
Enter fullscreen mode Exit fullscreen mode

In Javascript:

  • Call from HTML
const parent = document.querySelector('#parent');
const template = document.querySelector('#template');
Enter fullscreen mode Exit fullscreen mode
  • Clone the template
clonedTemplate = template.content.cloneNode(true);
Enter fullscreen mode Exit fullscreen mode
  • Append the new cloned template to the parent
parent.prepend(clonedTemplate);
Enter fullscreen mode Exit fullscreen mode

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series