2007年5月19日土曜日

IEとfirefoxのremoveChildの挙動

javascriptである要素内に在る、特定の要素を消す処理を実装してみました。
parentObj = document.getElementById('parent');
sunObj = document.getElementById('sun');
parentObj.removeChild(sunObj);
そしたらfirefoxではparentObjからsunObjを削除する挙動を示したんだけど、
IEではエラーになってしまいました。

私がDOMとかでネットを検索すると、どうやらremoveChildの引数は
Nodeを設定するらしい。Elementじゃー無いと言う事??
Elementなら削除されてはいけないので仕様通りなのはIEって事ですかね?
あんまりここら辺の詳しい話までは調べられず(^^;

で、あんまりキレイでは無いけどどっちでもいけるのを考案。
for(i=0;i<parentobj.childnodes.length;i++){
  if(parentObj.childNodes[i].id == 'sun'){
    parentObj.removeChild(parentObj.childNodes[i]);
  }
}
浅い知識が1上がったw

0 件のコメント :

コメントを投稿