スクリプトが利用するHTMLの断片を定義する
template
<
template
/template
template要素は、スクリプトによる文書への挿入・複製が可能なHTMLの断片を定義します。
カテゴリー |
・スクリプト支援要素 ・フレージングコンテンツ ・フローコンテンツ ・メタデータコンテンツ |
---|---|
コンテンツモデル |
・メタデータコンテンツ ・フローコンテンツ ・ol要素、およびul 要素の内容モデル ・dl要素の内容モデル ・figure要素の内容モデル ・ruby要素の内容モデル ・object要素の内容モデル ・video要素、およびaudio要素の内容モデル ・table要素の内容モデル ・colgroup要素の内容モデル ・thead要素、tfoot要素、およびtbody要素の内容モデル ・tr要素の内容モデル ・fieldset要素の内容モデル ・select要素の内容モデル |
使用できる文脈 |
・メタデータコンテンツが期待される場所 ・フレージングコンテンツが期待される場所 ・スクリプト支援要素が期待される場所 ・span属性を持たないcolgroup要素の直下 |
使用できる属性
グローバル属性すべての要素で使用できる属性です。
グローバル属性とイベントハンドラ属性
サンプルコード
以下の例では、template要素によってテンプレート化した表組みの一部に、script要素内のJavaScriptからデータを挿入しています。実際には、ユーザーの操作に応じてデータベースからデータを取得し、動的にページを生成するなどの利用方法が想定されます。また、template要素は複製して文書内の任意の場所で利用でき、ソースコードの再利用性を高められます。
<table> <!--省略--> <tbody> <template id="row"> <tr><td></td><td></td><td></td><td></td></tr> </template> </tbody> </table> <script> var data = [ { 名前: '山本太郎', 出身地: '東京都', 性別: '男性', 年齢: 30 }, { 名前: '沢田次郎', 出身地: '長野県', 性別: '男性', 年齢: 28 }, { 名前: '本山三郎', 出身地: '大阪府', 性別: '男性', 年齢: 24 }, { 名前: '金沢富子', 出身地: '北海道', 性別: '女性', 年齢: 21 } ]; </script> <script> var template = document.querySelector('#row'); for (var i = 0; i < data.length; i += 1) { var cat = data[i]; var clone = template.content.cloneNode(true); var cells = clone.querySelectorAll('td'); cells[0].textContent = cat.名前; cells[1].textContent = cat.出身地; cells[2].textContent = cat.性別; cells[3].textContent = cat.年齢; template.parentNode.appendChild(clone); } </script>Google Chrome