Table of Contents

学習のモチベーション

私は普段の業務の中で、どちらかというとサーバーサイド, DBレイヤ寄りの実装を行う事が多く、クライアント周りの知識が乏しいです。

それでも依頼されれば簡易的なJSの実装を行ったりはしますが、いまいちDOMという概念を自分の中で明確に言語化できていないまま、雰囲気でDOM操作をしたりしていました。

さすがに、Webエンジニアを自称する人間としてDOMとは何なのかくらいは自分の言葉で説明できる必要があるなと思い、学習・執筆に至った次第です。

DOMとは何なのか

DOM(Document Object Model)は、Webページの構造をプログラムで操作できるようにしたインターフェースです。

簡単に言うと、「HTMLやXML文書をプログラムで扱うための設計図」です。

参考文献

DOM の紹介 - Web API | MDN

ドキュメントオブジェクトモデル (DOM) - Web API | MDN

DOMの役割

なるほど、ではDOMという概念が存在する事で、我々開発者はどのようなメリットを享受できるんでしょうか。

DOMが存在する事で、以下のようなメリットを享受できます。

  1. 文書の構造を表現する

    DOMはウェブページのHTMLやXMLをツリー構造として表現します。

    これによってページは構造化され、各要素(例:見出し、段落、画像など)にアクセスしやすくします。

  2. プログラマブルになる

    JavaScriptなどのプログラム言語で、HTMLやCSSを変更したり操作したりするために、DOMが使われます。

    例えば、ボタンをクリックしたときに、特定のテキストを変更することができます。

  3. 動的なウェブページを実現する

    DOMを通じて、JavaScriptで要素を追加、削除、変更することで、インタラクティブで動的なウェブページが作れます。

DOMの基本構造と構成要素

DOMの基本構造

DOMは、ツリー構造(階層構造)で表現されます。このツリーはノード(Node)という単位で構成されています。