Tutorials References Exercises Videos Menu
Create Website Get Certified Upgrade

HTML <template> Tag


Example

Use <template> to hold some content that will be hidden when the page loads. Use JavaScript to display it:

<button onclick="showContent()">Show hidden content</button>

<template>
  <h2>Flower</h2>
  <img src="img_white_flower.jpg" width="214" height="204">
</template>

<script>
function showContent() {
  var temp = document.getElementsByTagName("template")[0];
  var clon = temp.content.cloneNode(true);
  document.body.appendChild(clon);
}
</script>
Try it Yourself »

More "Try it Yourself" examples below.


Definition and Usage

The <template> tag is used as a container to hold some HTML content hidden from the user when the page loads.

The content inside <template> can be rendered later with a JavaScript.

You can use the <template> tag if you have some HTML code you want to use over and over again, but not until you ask for it. To do this without the <template> tag, you have to create the HTML code with JavaScript to prevent the browser from rendering the code.


Browser Support

Element
<template> 26.0 13.0 22.0 8.0 15.0

Global Attributes

The <template> tag supports the Global Attributes in HTML.



More Examples

Example

Fill the web page with one new div element for each item in an array. The HTML code of each div element is inside the template element:

<template>
  <div class="myClass">I like: </div>
</template>

<script>
var myArr = ["Audi", "BMW", "Ford", "Honda", "Jaguar", "Nissan"];
function showContent() {
  var temp, item, a, i;
  temp = document.getElementsByTagName("template")[0];
  item = temp.content.querySelector("div");
  for (i = 0; i < myArr.length; i++) {
    a = document.importNode(item, true);
    a.textContent += myArr[i];
    document.body.appendChild(a);
  }
}
</script>
Try it Yourself »

Example

Check browser support for <template>:

<script>
if (document.createElement("template").content) {
  document.write("Your browser supports template!");
} else {
  document.write("Your browser does not supports template!");
}
</script>
Try it Yourself »