Uczymy się korzystać z tagów HTML template. Piszemy funkcję, która pozwala nam je wykorzystywać. Do dzieła.

Nasz HTML:

<template id="myTemplate">
        <h1>My heading</h1>
        <p>My para</p>
</template>

<div id="myDiv"></div>

Tag template jest niewidoczny. Tag div jest pusty. Złapmy je w JS:

window.addEventListener('DOMContentLoaded', function(){

    let tpl = document.getElementById("myTemplate");
    let div = document.getElementById('myDiv');

});

Teraz napiszmy funkcję fromTemplate:

window.addEventListener('DOMContentLoaded', function(){

    let tpl = document.getElementById("myTemplate");
    let div = document.getElementById('myDiv');

    function fromTemplate(el){
        if(!el.matches("template"))
            return null;
        return el.content.cloneNode(true);
    }

    console.log(fromTemplate(div));
    //null

    console.log(fromTemplate(tpl));
    //DocumentFragment(5) [ #text, h1, #text, p, #text ]

    div.appendChild(fromTemplate(tpl));
});

Kopiuje zawartość – pod warunkiem, że znajduje się ona w tagu template.