2007年12月08日(土)

« 【JavaScript】リンクオブジェクトのhref参照時のブラウザ毎の振る舞いの違い | トップページ | 【JavaScript】IE6のString.split()の不具合と対策 »

【JavaScript】IE6におけるtable要素の初期化

IE6では、HTMLで『<table></table>』とだけ記述したtable要素をJavaScriptで取得すると、なぜかtbody要素がデフォルトで入っています(document.createElement('table')で作成した場合は入りませんが)。
これは、『table要素内が空である』ということを前提にしてコーディングしようとした場合なんかは困ります。
それならばと、table要素を初期化するために『table.innerHTML=''』とかしてしまうと、『エラー:未知の実行時エラーです。』なんてわけのわからないエラーが発生してしまいます。
これでは、既存のテーブルを一旦初期化して書き替える、といったことをやろうとした場合にも困ってしまいます。
そこで、IE6でtable要素のinnerHTML部分を初期化するには、例えば、
function    clearTable(table) {
    var elm;
    while (elm=table.firstChild) table.removeChild(elm);
}
のような初期化用の関数を用意してやってコールする、といった工夫が必要になってきます。
なお、この関数自体はIE6に限らず使えると思います。また、table要素以外の初期化も可能と思われます。
【テーブル初期化サンプル】
table要素
下のボタンを押すと、テーブルが初期化されます。

【HTML】

ちなみに、これは『404 Blog Not Found:Google Code Chart - 折れ線グラフうぃざ~ど』を見ていて気がつきました。

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2007/12/08(土) 16:20 | | 記事の編集(管理者用)

風柳へひとこと(web拍手) 

パソコン・インターネット」カテゴリの記事

覚書」カテゴリの記事

トラックバック

この記事のトラックバックURL:

記事との関連性が薄いものやSPAM等、管理人が不適切と見なしたトラックバックについては予告無く削除する場合が有ります。悪しからずご了承下さい。

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/161784/17309845

この記事へのトラックバック一覧です: 【JavaScript】IE6におけるtable要素の初期化:

コメント

コメントを書く