JavaScriptの最初の子

阿神
阿神オリジナル
2017-02-25 17:36:532932ブラウズ

<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属性を利用してノードの種類を判定することができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。