私は次のコードを持っている:UL子ノードの異なる長さ
<ul id="meganFox">
<li>Frank</li>
<li>Jeff</li>
<li>Bob</li>
</ul>
<div id="debug"></div>
<script language="javascript">
var nodes = document.getElementById('meganFox').childNodes;
var el = document.getElementById('debug');
for(var i = 0; i < nodes.length; i++){
el.innerHTML += i +' - '+ nodes[i] +'<br />';
}
alert(nodes.length);
</script>
Firefoxの警告:7 0 - [オブジェクトのテキスト]
1 - [オブジェクトHTMLLIElement]
2 - [対象テキスト]
3 - [対象HTMLLIElement]
4 - [対象テキスト]
5 - [オブジェクトHTMLLIElement]
6 - [対象テキスト]
IE警告:3
0 - [目的]
1 - [オブジェクト]
2 - [オブジェクト]
なぜ7ですか?オブジェクトテキストとオブジェクトとは何ですか?
私の最終目標は、キーイベントをキャプチャし、上下の矢印を使用してキーイベントをナビゲートすることです。 IEで正常に動作していますが、この問題のためにFFで動作していません。
私はIE8とIE9を使用していますので、IEの古いバージョンではありません。私はまだ "空のテキストノード"の定義を理解しようとしています。 googlingそれ。 – phpmeh
ああ、私はそれがコード内の空白だけであることを理解しました...私はFFが嫌いです。 :Pありがとうございました! – phpmeh
@phpmeh:申し訳ありませんが、要素間だけに空白があるはずです。スペース、改行、およびタブが含まれます。私はIE8を古いバージョンと考えています。私はIE9がそれを修正しましたが。 –