Jintrick.netagenda2001年08月アーカイブ → 2001年08月09日

childNodesに関する覚え書き

ページ上部のナビゲーションの部分のul要素の、JavaScriptで生成した(2番目以降に出現する)子要素の先頭に、「>>」を挿入するというスクリプトを書いた。

「2番目に出現する子要素」は、childNodes[1]で問題なく参照できるはず、と思っていたが、Mozilla0.9.3と、IE5.5で、この違い。 document.getElementById('testULFord200108a21').childNodes[1].innerHTML

IE5.5の結果
<B>&gt;&gt;</B>agenda
Mozilla0.9.3の結果
<a href="./">Personnel</a>

Mozillaの参照するchildNodes[1]は、IEの参照するchildNodes[0]と同じになっていて、んじゃあ、Mozillaの場合、childNodes[0].innerHTMLには何が入っているんだという話。

document.getElementById('testULFord200108a21').childNodes[0].innerHTML

IE5.5の結果
<a href="./">Personnel</a>
Mozilla0.9.3の結果
undefined

何も入ってないよ(苦笑)。

これはもう解釈の違いというより、違う言語であるかのような違和感。こんな基礎的なところで、また実装の違いですか。疲れた。でもCSSと違って他サイトにも再利用できる汎用性があるのでくじけないでやるつもり。このくらいなら、判別に数バイト我慢すれば済むし。

他のリスト要素でも試してみた。

document.getElementById('testOLFord200108a21').childNodes[0].innerHTML (結果は同じ)


webmaster@jintrick.net
公開: 2001年08月09日
カテゴリ: DOM ,Javascript