table要素作成 まとめ。

<table>
 <thead>
  <tr>
  <th></th>
  <th></th>
  <th></th>
  <th></th>
  </tr>
 </thead>
 <tbody>
  <tr>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  </tr> 
  <tr>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  </tr>
 </tbody>
 <caption></caption>
</table>

こういうのを作りたい。
DOM Level2に独自のHTMLTableElementとか、いろいろあるので、
それを使う。

まずは、

var table = document.getElementsByTagName("table").item(0);
か
var table = document.createElement("table");

で、ノード取得。
thead要素は

var thead = table.createTHead();

で、ノード取得して、
やりたい数だけ、

var tr = thead.insertRow(-1);
var td = tr.insertCell(-1);
td.appendChild(document.createTextNode("hogehoge"));

thead要素終了。ここで気をつけてほしいのが、
insertCellとか、insertRowはappendChildと違って、
結合した後のノードをさすので、間違えないように。
tfootとかも同じ。


お次はcaption要素。この要素も専用のメソッドがあって、

var caption = table.createCaption();

あとは通常の要素と同じようにすればよい。
documentFragment使うなりお好きなようにどうぞ。


最後にtbody要素。此方の要素はなぜか、専用のメソッドがないので、

var tbody = document.createElement("tbody");
var tr = thead.insertRow(-1);
var td = tr.insertCell(-1);
td.appendChild(document.createTextNode("hogehoge"));

基本はこんな感じで。

これで、tableのノードを新規作成した場合は

[張り付けたい親ノード].appendChild(table);

でOK♪