ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの最初の子
<ul id="contain"> <li><a href="http:/www.php.cn">Microsotf</a></li> <li><a href="http:/www.php.cn">Yahoo</a></li> <li><a href="http:/www.php.cn">Easy</a></li> <li><a href="www.php.cn">W3c/Javascript</a></li> <li><a href="www.php.cn">Design|Source</a></li> </ul> var container=document.getElementById("contain");
1. firstChild を ul 要素の最初の子ノードとして使用します (テキスト ノードと HTML 要素ノードを含む)。したがって、標準に従って、Firefox と Opera の例では、Container.firstChild は空白テキスト ノードを取得する必要があります。 IE はこれを実装していません。テキスト ノードに空白文字のみが含まれている場合、IE はそれを直接スキップします。したがって、IE の container.firstChild を通じて取得できるのは、li 要素ノードです。
2. firstChild は、要素のすべての子ノード (childNodes) のうちの最初の子ノードです。要素の最初の子ノードが変更されない場合、firstChild への参照も変更されません。連続して 2 回取得された firstChild は同じオブジェクトです。
補足:参照とオブジェクトの関係を理解する必要があります。 firstChild は、要素の最初の子ノードへの参照です。指定した xx 関数では、firstChild が指すオブジェクトを親オブジェクトの末尾に追加します。firstChild が最初に参照していたオブジェクトはコンテナ オブジェクトの末尾にジャンプし、firstChild は元々 2 番目にランクされていた要素オブジェクトを指します。このようなサイクルが続くと、リンクは 1 つずつ元に戻ります。
<body> <ul id="action"> <li title="第一段文字">第一个</li> <li title="第二段文字">第二个</li> </ul> <script type="text/javascript"> var attr_p = document.getElementById("action"); alert(attr_p.childNodes[1].childNodes[0].nodeValue); </script> </body>
アクションの ID を持つ ul の最初の li にあるテキスト ノードを取得したい場合 (get: the first one など)、...childNodes[1].childNodes[0].nodeValue を使用して、それを見つけて使用してください... childNodes[1].firstChild.nodeValue は最初の li テキスト ノードも見つけることができます。 結論 childNodes[0] は、いつどこにいても、最初の要素にアクセスすることが重要です。 childNodes[] 配列の firstChild として記述することができ、DOM は対応する lastChild 属性も提供します。なお、ffの空間ノード問題では、要素ノードが見つかるまでnodeType属性を利用してノードの種類を判定することができます。