createElementでtableを挿入するときのIEの挙動

以下のコードはIE以外では正常に動作する。

var table = document.createElement('table');
var tr = document.createElement('tr');
var td = document.createElement('td');
var img = document.createElement('img');
document.getElementById('container').appendChild(table).appendChild(tr).appendChild(td).appendChild(img);

以下のコードはIEでも動作する。違いはtbodyを明示してあげる事。

var table = document.createElement('table');
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
var td = document.createElement('td');
var img = document.createElement('img');
document.getElementById('container').appendChild(table).appendChild(tbody).appendChild(tr).appendChild(td).appendChild(img);

html 4.01

11.2.3 行グループ: THEAD、 TFOOT、及びTBODY要素

TBODY開始タグは、表が本体をただ1つだけ含んでいてヘッダもフッタも含まないという場合を除き、常に必要である。

へー

html 5

table 要素

0 個以上の tbody 要素

ふむふむ

参考

http://w3g.jp/xhtml/dic/tbody

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です