<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>The template Tag</title>
    </head>
    <body>
        <h1>The template Tag</h1>
        <p>
            The content inside the template tag is not displayed during rendering
            but can be dynamically manipulated using JavaScript.
        </p>

        <template id="list-item-template">
            <li class="template-list-item"></li>
        </template>

        <ul id="template-item-list"></ul>
        <button type="button" id="add-template-item-btn">Add Item</button>

        <!-- JavaScript code is linked here -->
        <script src="template.js"></script>
    </body>
</html>
const itemList = document.getElementById('template-list-item');
const listItemTemplate = document.getElementById('list-item-template');
const addItemBtn = document.getElementById('add-template-item-btn');

const predefinedItems = ['Apple', 'Banana', 'Orange', 'Grapes', 'Peach'];

addItemBtn.addEventListener('click', () => {
    const randomIndex = Math.floor(Math.random() * predefinedItems.length);
    const selectedText = predefinedItems[randomIndex];

    const listItemClone = listItemTemplate.content.cloneNode(true);
    const listItem = listItemClone.querySelector('.template-list-item');
    listItem.textContent = selectedText;
    itemList.appendChild(listItemClone);
});
Try it Yourself
<template id="template-id">
    <!-- Template content goes here -->
</template>