2010/07/07

[JavaScript]動的にTABLEを作成する時の注意点

IEをすでにバージョン8にまでアップしてしまったので、わからなかったのですが、

IE6ではドキュメントロード時にテーブル要素をDOM使って生成する場合、theadやtbodyを生成しなければいけないようです。

via:IE6ではテーブル要素の動的生成時にtbodyを生成しないとだめみたい

と書かれているように、tbodyタグを追加しないと表示されないようなのです。

当初、こんなプログラムを作成しました。
<html>
<head>
</head>
<body>
<div id="hoge"></div>

<script type="text/javascript">
var table = document.createElement("table");
table.border = "1";
var tr = document.createElement("tr");
var td = document.createElement("td");
var textnode = document.createTextNode("foo");
td.appendChild(textnode);
tr.appendChild(td);
table.appendChild(tr);
document.getElementById("hoge").appendChild(table);
</script>
</body>
</html>

firefoxやchromeは動いたのですが、これだとIE6ではダメで、先ほど紹介した記事にあるとおり、tbodyを動的に生成しないと、tableが表示されないようです。

注意しないとなー。

0 コメント:

コメントを投稿