• Теория
  • Теория

Шаблоны и тег <template>

У нас есть данные, чтобы создать новую задачу. Мы знаем, в какой момент можно добавить задачу на страницу. Осталось разобраться, как именно будет реализовано добавление нового элемента.

Мы уже создавали новые элементы через createElement, но этот способ долгий. Сначала надо создать элемент, задать ему класс, атрибуты, потом так же создать дочерние элементы, вложить их в родителя и потом отрисовать на страницу.

Было бы удобно, если бы вся необходимая разметка для будущих элементов уже где-то хранилась. Нам бы оставалось только подправить содержимое под каждый элемент. И это можно сделать с помощью тега template.

Он хранит в себе шаблон для будущих элементов. Тег template находится там же, где и вся разметка сайта, только его содержимое не отображается на странице. В нашей разметке тоже есть template. Он хранит шаблонную разметку новой задачи.

Чтобы получить template в JavaScript, его можно найти по названию тега, например, через querySelector('template'). У этого способа есть минус — шаблонов на странице может быть много. Обычно каждому тегу template дают уникальное название и записывают в атрибут id (идентификатор). Значения этого атрибута не могут повторяться на одной странице. По id можно найти необходимый шаблон.

Шаблон в разметке:

<body>
  …
  <template id="text-template">
      <p class="text"></p>
  </template>
</body>

Поиск элемента в JavaScript:

document.querySelector('#text-template');

Решётка в параметре querySelector обозначает, что искать надо по id.

У нашего шаблона идентификатор task-template. Найдём этот template и выведем содержимое тега на страницу.

Есть ещё один метод в DOM API, который позволяет искать элементы по идентификатору — getElementById. В отличие от других методов он может быть вызван только на всём документе, а не отдельном элементе. Мы познакомимся с этим методом ближе в других тренажёрах, пока потренируемся искать элементы по id с помощью querySelector. Если вам хочется узнать подробности о новом методе поскорей, можете почитать про него на MDN.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Манипуляции с DOM» тренажёра «Погружение в браузерный JavaScript» можно после регистрации и оформления подписки.