複製され、スクリプトによって文書に挿入できる HTML の断片を宣言するために使用される。
メタ データ内容が期待される場所。
フレージング内容が期待される場所。
スクリプトサポート要素が期待される場所。
span 属性を持たない COLGROUP 要素の子として。
Nothing(明確化のために、例を参照)。
どちらのタグも省略不可。
レンダリングにおいて、TEMPLATE 要素は何も表さない。
TEMPLATE 要素のテンプレート内容は、要素自体の子ではないこと。
たとえば、次の文書を考えてみる:
<!DOCTYPE HTML> <HTML lang="en"> <HEAD> <TITLE>Homework</TITLE> <BODY> <TEMPLATE id="template"><P>Smile!</P></TEMPLATE> <SCRIPT> let num = 3; const fragment = document.getElementById('template').content.cloneNode(true); while (num-- > 1) { fragment.firstChild.before(fragment.firstChild.cloneNode(true)); fragment.firstChild.textContent += fragment.lastChild.textContent; } document.body.appendChild(fragment); </SCRIPT> </HTML>
TEMPLATE における P 要素は、DOM 内の TEMPLATE の子ではない。TEMPLATE 要素の content IDL 属性によって返される DocumentFragment の子である。
スクリプトが TEMPLATE 要素の appendChild() を呼び出すと、(他の要素の場合と同様に)TEMPLATE 要素に子要素が追加される。しかし、そのようにすることは、TEMPLATE 要素のコンテンツモデルに違反することになる。
HTML:
<TABLE id="producttable"> <THEAD> <TR> <TD>UPC_Code <TD>Product_Name </THEAD> <TBODY> <!-- オプションで既存のデータをここに含めることができます --> </TBODY> </TABLE> <TEMPLATE id="productrow"> <TR> <TD class="record"></TD> <TD></TD> </TR> </TEMPLATE>
まず、JavaScript コードを使用して後からコンテンツを挿入するための表を作ります。次に、1 行分を表す HTML 断片の構造が書かれたテンプレートが続きます。
表が生成され、テンプレートが定義されました。JavaScript を使って、テンプレートを基に構築される各行を表に挿入します。
JavaScript:
// templete 要素の content 属性の有無を確認することで、 // ブラウザーが HTML の template 要素に対応しているかテストします。 if ('content' in document.createElement('template')) { // 既存の HTML tbody と template の行を使って // table をインスタンス生成します。 var tbody = document.querySelector("tbody"); var template = document.querySelector('#productrow'); // 新しい行を複製して表に挿入します。 var clone = template.content.cloneNode(true); var td = clone.querySelectorAll("td"); td[0].textContent = "1235646565"; td[1].textContent = "Stuff"; tbody.appendChild(clone); // 新しい行を複製して表に挿入します。 var clone2 = template.content.cloneNode(true); td = clone2.querySelectorAll("td"); td[0].textContent = "0384928528"; td[1].textContent = "Acme Kidney Beans 2"; tbody.appendChild(clone2); } else { // HTML の template 要素に対応していないので // 表に行を追加するほかの方法を探します。 }
結果として、JavaScript を通して、新しい行が追加された HTML の表ができます。
<TEMPLATE id=IdReiTemplate> <SPAN>テスト</SPAN> </TEMPLATE> <DIV id=IdReiDiv style="border:1px solid black;"></DIV> <SCRIPT> IdReiDiv.innerHTML=IdReiTemplate.innerHTML; </SCRIPT>
表示内容: |
表示内容: |