childNodesがIEとFirefoxで違う

@iwasaki 322views 更新:2014年3月27日
<div id="hoge">
  <div>その1</div>
  <div>その2</div>
  <div>その3</div>
  <div>その4</div>
</div>

のノードを取得するときにIEでは改行をノードとして無視して、Firefoxではノードとして判別してしまうようです。 無理矢理の回避策としては1行で書いてしまうか、ノード一覧を取得して、中身がからかどうかを判別すると回避できそうです。

  var parent = dojo.byId('hoge');
  var count = parent.children.length;

  for(i = 0 ; i < count; i++ ) {
    if(typeof parent.childNodes[i].innerHTML === "undefined"){
       alert("改行コード");
    }else{
       alert("ここが本当に取得したい要素");
    }
  }

参考 http://codaholic.org/?p=1004

http://befine.jugem.jp/?eid=20

実際に動かしてみたところ

http://jsdo.it/aimluck_iwasaki/mFNy

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません