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

Top comments (0)