JavaScriptでTableを作成
JavaScriptでtableを作成するにはtbodyを作成して
その中にtrを作成しなければならないらしい。
で、そのtrの中にthやらtdを入れるんだと。
散々試してみて駄目だったので、検索してみたらtbodyを作成してないからだった。
//table、tbody、tr、tdのエレメント?を作成 var otable = ce("table", ""); var otbody = ce("tbody", ""); var otr = ce("tr", ""); var otd1 = ce("td", "aaa"); var otd2 = ce("td", "bbb"); //第1引数の中にある第3引数の前に第2引数を入れる ins(document.body, otable, null); ins(otable, otbody, null); ins(otbody, otr, null); ins(otr, otd1, null); ins(otr, otd2, otd1); function ce(t, txt) { var el = document.createElement(t); if (txt) { var str = document.createTextNode(txt); ins(el, str, null); } return el; } function ins(a, b, c) { a.insertBefore(b, c); }
appendChildでもできるが、insertBeforeを使って作成してみた。
これは、第1引数の中の第3引数の前に第2引数を作成するようで
第3引数にnullを指定すると、第1引数の中の最後に作成されるらしい。
↑の場合、2個目のtdが1個目のtdの前に作成される。
それにしてもtbodyってなんだ?
見掛けた事はあったが、まぁ飾りのようなもんだろうと思っていた。
はてなダイアリーはtbodyを書いていなくても
登録した時点で、自動的にtbodyが入るみたいだ。