Skip to content

template

garevna edited this page Nov 4, 2018 · 7 revisions

🎓 <template>

✅ DocumentFragment
✅ content
✅ cloneNode ()

Элемент <template> предназначен для хранения шаблона разметки

⚠️ Он не отображается на странице
⚠️ Он парсится браузером, поэтому должен содержать только валидный код разметки

☕ 1️⃣

Откроем вкладку Elements инструментов разработчика и вставим в элемент body следующий код разметки:
<body>
    <template id="sample">
        <h3>Template header</h3>
        <p>Template text</p>
    </template>
</body>

При этом на странице ничего не появится, а вот во вкладке Elements мы увидим следующую картинку

<template id="sample">
  ▼ #document-fragment
     <h3>Template header</h3>
     <p>Template text</p>
  </template>

🎓 DocumentFragment

это фрагмент документа, у которого нет родителя в дереве DOM

DocumentFragment содержит DOM-элементы ( nodes ), как и объект document

Но поскольку фрагмент документа не является частью структуры DOM, он не отображается на странице

Это шаблон разметки, который при необходимости может быть вставлен в нужное время в нужном месте

🎓 content

Свойство content элемента template содержит код разметки, находящийся в контейнере
<template>...</template>

var circle = document.querySelector ( "#svg" ) console.dir ( circle.content )

☕ 2️⃣

<template id="svg">
    <svg width="400" height="400">
        <circle cx="200" cy="200" 
                r="100" 
                fill="transparent"
                stroke="red" 
                style="stroke-width:5">
        </circle>
    </svg>
</template>
const circle = document.querySelector ( "#svg" )
console.dir ( circle.content )
▼ #document-fragment
    baseURI: "about:blank"
    childElementCount: 2
  ► childNodes: NodeList(5) [text, h3, text, p, text]
  ► children: HTMLCollection(2) [h3, p]
  ► firstChild: text
  ► firstElementChild: h3
    isConnected: false
  ► lastChild: text
  ► lastElementChild: p
    nextSibling: null
    nodeName: "#document-fragment"
    nodeType: 11
    nodeValue: null
  ► ownerDocument: document
    parentElement: null
    parentNode: null
    previousSibling: null
    textContent: "↵        Template header↵        Template text↵    "
  ► __proto__: DocumentFragment

© Irina H.Fylyppova 2018
Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав


Новая версия


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally