by techyankee

HTML

<!-- Learn about this code on MDN: https://developer.mozilla.org/ja/docs/Web/HTML/Element/template -->
<button id="button" type="button" name="button">追加</button>

<table id="producttable">
  <thead>
    <tr>
      <td>UPC_Code</td>
      <td>Product_Name</td>
    </tr>
  </thead>
  <tbody>
    <!-- 必要に応じて既存のデータをここに含められます。 -->
  </tbody>
</table>

<template id="productrow">
  <tr>
    <td class="record"></td>
    <td></td>
  </tr>
</template>

CSS

table {
  background: #000;
}
table td {
  background: #fff;
}

JavaScript

document.getElementById("button").onclick = function() {
  // templete 要素の content 属性の有無を確認することで、
// ブラウザーが HTML template 要素に対応しているかテストします。
if ('content' in document.createElement('template')) {

    // 既存の HTML tbody と template の行を使って
    // table をインスタンス生成します。
    var template = document.querySelector('#productrow');

    // 新しい行を複製して表に挿入します。
    var tbody = document.querySelector("tbody");
    var clone = document.importNode(template.content, true);
    var td = clone.querySelectorAll("td");
    td[0].textContent = "1235646565";
    td[1].textContent = "Stuff";

    tbody.appendChild(clone);

    // 新しい行を複製して表に挿入します。
    var clone2 = document.importNode(template.content, true);
    td = clone2.querySelectorAll("td");
    td[0].textContent = "0384928528";
    td[1].textContent = "Acme Kidney Beans 2";

    tbody.appendChild(clone2);

} else {
  // HTML template 要素に対応していないので 
  // 表に行を追加するほかの方法を探します。
}

    console.log('追加');
  };