Element.firstElementChild - 最初の子要素を取得する
投稿日: / 更新日:
JavaScriptの、ElementオブジェクトのfirstElementChild
は最初の子要素を取得するプロパティです。
説明
ElementオブジェクトのfirstElementChildプロパティは、最初の子要素を含みます。テキストノード、コメントノードは含みません。子要素がない場合はnull
が返ります。
<ul>
<li>要素1</li>
<li>要素2</li>
<li>要素3</li>
</ul>
// ulElement = <ul> ... </ul>
// 最初の子要素を取得 ( → <li>要素1</li> )
var firstElementChild = ulElement.firstElementChild ;
似たプロパティにfirstChildがあります。firstChildプロパティとfirstElementChildプロパティの違いは何でしょうか?それは「テキストノード、コメントノードを含むか否か」です。
<ul>↓
<li>要素1</li>
<li>要素2</li>
<li>要素3</li>
</ul>
// ulElement = <ul> ... </ul>
// 最初の子ノードを取得 ( → テキストノード (改行とタブ文字) )
var firstChild = ulElement.firstChild ;
例えば、同じul要素のfirstChildプロパティは1つ目のli要素ではありません。何故なら、ul要素の開始タグと1つ目のli要素の間には、改行とタブ文字が存在するからです。そのためfirstChildプロパティには、この改行とタブ文字のテキストノードが含まれるんです。
firstElementChildプロパティは要素以外の余計なテキストノードやコメントノードを無視してくれる点で有用です。仮に、ul要素の開始タグと1つ目のli要素の間に文字がなければ、firstChildとfirstElementChildプロパティの内容は同じです。
サンプルコード
<ul id="target">
<li>要素1</li>
<li>要素2</li>
<li>要素3</li>
</ul>
// 要素を取得 ( → <ul id="target"> ... </ul> )
var ulElement = document.getElementById( "target" ) ;
// 最初の子要素を取得 ( → <li>要素1</li> )
var firstElementChild = ulElement.firstElementChild ;
デモ
ul要素のfirstElementChildプロパティを取得して表示します。コンソールでオブジェクトの中身を確認できます。
構文
readonly Element firstElementChild = Element.firstElementChild
返り値
項目 | 説明 |
---|---|
firstElementChild | 最初の子要素。コメントノード、テキストノードは無視される。 |
関連項目
- Location - ブラウザロケーションのオブジェクト。
- Location.assign() - コンテンツをロードして表示する。
- Location.reload() - ドキュメントをリロードする。
- Location.replace() - 現在のURLを置換する。
外部リンク
- HTML Living Standard - WHATWGによる仕様書。