【JavaScript】親要素・親ノードを取得する【parentElement・parentNode】
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptで親要素(親ノード)を取得する方法をご紹介しています。
JavaScriptでは親要素の取得は「parentElement」を、親ノードの取得は「parentNode」を使用します。それぞれの使い方と実行結果についてご紹介していきます。
では、解説していきます。parentElementで親要素を取得する
parentElement
はNodeが持つプロパティです。指定したDOMノードの親にあたる要素を取得することができます。親ノードが存在しなかったり、要素でない場合はnull
を返します。
実際にparentElement
で親要素を取得してみます。下記のサンプルにあるid
がchild
の要素を取得し、parentElement
でchild
の親要素を取得してみます。
HTML
<div id="app"> <div id="parent"> <div id="child"></div> </div> </div>
JavaScript
const child = document.getElementById("child"); console.log(child.parentElement);
実行結果
<div id="parent"> <div id="child"></div> </div>
child
の親要素であるparent
を取得することができました。parent
はid
がchild
の要素を持っているためこのような結果となります。
parentNodeで親ノードを取得する
parentNode
はNodeが持つプロパティです。指定したノードのDOMツリー内にある親ノードを取得することができます。
前項でご紹介したparentElement
は要素のみを取得することができましたが、parentNode
は要素に加え、ドキュメントノードを取得することが可能となっています。
実際にparentNode
を使用して親ノードを取得してみます。下記のサンプルではid
がchild
の要素を取得し、parentNode
でchild
の親ノードを取得します。
HTML
<div id="app"> <div id="parent"> <div id="child"></div> </div> </div>
JavaScript
const child = document.getElementById("child"); console.log(child.parentNode);
実行結果
<div id="parent"> <div id="child"></div> </div>
実行結果は前項でご紹介したparentElement
と同じです。どちらも対象に要素に含まれているため、想定した結果を返してくれています。
parentElementとparentNodeの違いについて
parentElement
とparentNode
の最大の違いは、ドキュメントノード 取得時の結果です。実際にhtml
要素でparentElement
とparentNode
を実行し、結果を確認してみます。
parentElement
JavaScript
console.log(document.documentElement.parentElement);
実行結果
null
parentNode
JavaScript
console.log(document.documentElement.parentNode);
実行結果
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> </body> </html>
parentElement
はnull
を返すのに対し、parentNode
はドキュメントノードを返します。基本的にドキュメントノード内で使用される場合は問題ないですが、その点ご注意ください。
最後に
本記事を書くにあたって下記のページを参考にさせていただきました。
JavaScriptで親要素・親ノードを取得して何らかの処理をする場合、parentElement
もしくはparentNode
で対応できます。祖先要素の取得方法については下記のページでご紹介しておりますので、併せてご覧いただければ幸いです。
以上、JavaScriptで親要素・親ノードを取得する方法のご紹介でした!
JavaScriptを基礎からしっかりと学びたい方へ
下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。