JavaScriptで親要素・子要素・兄弟要素を取得する方法を初心者向けに徹底解説
生徒
「JavaScriptでボタンを押したときに、そのまわりの要素も一緒に操作したいんですが、どうやって指定すればいいんですか?」
先生
「その場合は、DOMの親要素や子要素、兄弟要素を取得する方法を使います。」
生徒
「親とか兄弟って、人みたいですね。HTMLにも家族関係があるんですか?」
先生
「そのイメージで大丈夫です。HTMLは木の構造になっていて、家族関係として考えるととても理解しやすくなります。」
1. DOMの親子関係とは何か
JavaScriptのDOM操作では、HTMLの構造を家族のような関係で考えます。外側にある要素を親要素、その中に入っている要素を子要素と呼びます。
例えば、箱の中に文字が入っている場合、箱が親で文字が子になります。この考え方を理解すると、どの要素を操作したいのかが分かりやすくなります。
DOMとは、ブラウザがHTMLを理解しやすい形に変換した仕組みのことです。JavaScriptは、このDOMを通して画面の内容を操作します。
2. 親要素を取得する方法
ある要素から見て、一つ外側にある要素が親要素です。JavaScriptでは parentElement を使うことで簡単に取得できます。
これは「今見ている要素のお父さんやお母さんは誰か」を教えてもらうようなイメージです。
const item = document.getElementById("item");
const parent = item.parentElement;
このように書くことで、指定した要素の親要素を取得できます。親要素が分かれば、その背景色を変えたり、まとめて非表示にしたりできます。
3. 子要素を取得する方法
親要素の中に入っている要素が子要素です。JavaScriptでは children を使って子要素をまとめて取得できます。
子要素は複数あることが多いため、配列のような形で扱われます。
const box = document.getElementById("box");
const children = box.children;
これで、箱の中に入っているすべての要素を取得できます。番号を指定すれば、特定の子要素だけを操作することも可能です。
たとえば「最初の子」「二番目の子」というように考えると、初心者でも理解しやすくなります。
4. 兄弟要素を取得する方法
同じ親を持つ要素同士は兄弟要素と呼ばれます。JavaScriptでは、前後の兄弟を取得する専用のプロパティが用意されています。
nextElementSibling は次の兄弟、previousElementSibling は前の兄弟を取得します。
const current = document.getElementById("item");
const next = current.nextElementSibling;
const prev = current.previousElementSibling;
これは、並んでいる要素の中で「隣の人」を指差すようなイメージです。リストやメニューの操作でよく使われます。
5. HTML構造をイメージすることの大切さ
親要素、子要素、兄弟要素を正しく扱うためには、HTMLの構造を頭の中で思い浮かべることが重要です。
紙に箱と中身を書いてみたり、階段状に並べて考えると理解が早くなります。
DOM操作が難しく感じる原因の多くは、構造が見えていないことです。構造が分かれば、JavaScriptのコードも自然と読めるようになります。
6. 初心者がつまずきやすいポイント
親要素と子要素を取り違えてしまうことは、初心者によくある失敗です。どこを基準に見ているかを意識することが大切です。
また、兄弟要素が存在しない場合は、取得結果が空になることもあります。要素の並び順にも注意しましょう。
DOMは目に見えない構造ですが、家族関係として考えることで、操作の流れが理解しやすくなります。