[PR] WEB制作会社PSYCOMMU

javascript

javascriptで動的にテーブルを作成するときのIE8以下のバグ

alert

サンプル

久々のメモ。
現在IE8を使用しているのですがブラウザチェック時にIE6・7共に動的にjavascriptでテーブルを作成したときにはまったのでメモ。

【IE6・7では表示されない記述方法】


//TABLE作成
var TABLE = document.createElement("TABLE");
TABLE.cellPadding =TABLE.cellSpacing=0;
document.body.appendChild(TABLE);

//TR作成
var TR = document.createElement("TR");
TABLE.appendChild(TR);

//TD作成
var TD = document.createElement("TD");
TD.innerHTML="IE6・7だと表示されません";
TR.appendChild(TD);
                

【IE6・7でも表示される記述方法】


//TABLE作成
var TABLE = document.createElement("TABLE");
TABLE.cellPadding =TABLE.cellSpacing=0;
document.body.appendChild(TABLE);

//TBODY作成
var TBODY = document.createElement("TBODY");
TABLE.appendChild(TBODY);

//TR作成
var TR = document.createElement("TR");
TABLE.appendChild(TR);

//TD作成
var TD = document.createElement("TD");
TD.innerHTML="IE6・7だと表示されません";
TR.appendChild(TD);
                

上記の様にTR作成時の前にTBODYを作成してTBODYにTRをappendChildしてあげると表示されるようになりました。
alert()してみるとタイトル下の画像のようにきちんとIE6・7でもきちんとappendChildは出来ている様なのでどうやら表示がされていない感じなのかなー。
それを回避するためにTBODYを利用すると一発解決するというメモ。

javascriptで動的にテーブルを作成するときのIE8以下のバグに対してコメントをする

Copyright 2009 PANDAMA. All rights reserved.
PANDAMA.com 掲載の記事・写真・図表など無断転載を禁止します。著作権はPANDAMA.comに属します。