- ベストアンサー
初心者に向けたJavaScript DOM操作の基本とは?
- JavaScriptの勉強を始めて、1か月程度の初心者です。JavaScriptを使って、計算したり、カレンダーを作ったり、HTMLの要素の内容を変更させたり、削除したり、スタイルシートのプロパティを変更して、背景色を変えたり、要素を移動したり、イベントを使用したりと、出来ることは増えてきて、勉強するのが楽しくなってきたのですが、いまだにDOM操作についていまいち理解できていません。
- 具体的にDOMとはどこからどこまでなんでしょうか?JavaScriptに組み込まれているオブジェクト(Date,Math、String、Array)以外のものは、すべてDOM操作と言う事でしょうか?イベントハンドラだとか、タイマ機能などもDOMと言う事でしょうか?
- DOM操作についてわかりやすく説明します。DOMとは、Document Object Modelの略で、ウェブページの構造を表すオブジェクトの階層構造です。ウェブページはHTMLで記述されており、そのHTML文書を解析してブラウザがウェブページを読み込む際に、ブラウザ内部でDOMツリーが作成されます。このDOMツリー上でJavaScriptを使って要素の追加や削除、内容の変更などが行われます。また、イベントハンドラやタイマ機能もDOMツリー上で動作します。つまり、JavaScriptを使ってウェブページの要素を操作する際にはDOM操作ということになります。DOM操作を理解することで、より効果的にウェブページを操作することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No1さんが指摘してサイトを読む前に、観念的なところから始めることをお勧めする。 http://www.google.co.jp/search?hl=ja&q=%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF&lr=lang_ja http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0 http://www.atmarkit.co.jp/fdotnet/basics/oop01/oop01_01.html これが、基本です。1990年代にはやったフレーズです。そうC++、Javaが台頭してきた時代です。この「オブジェクト」と呼ばれるものが、DOMを操作する、基本的な考え方です。 その前にあったのが、構造化プログラミング。この発展系がオブジェクト指向。 そのオブジェクト指向で、基本と成るのが、「オブジェクト」。それを操作するのが、オブジェクト指向プログラム言語。 モデリングされた物 = 物 =オブジェクト などと上記のサイトから引用するとなる。なのでプログラミング言語の中では 「オブジェクト」 を操作するのを 「メソッド」 「プロパティ」 となる。それらが定義されているんのが、 クラス クラスライブラリー フレームワーク C++など、ヘッダーに、それぞれのライブラリーを呼び出すわけですね。 >すべてDOM操作と言う事でしょうか? 上記、オブジェクト指向を理解していれば、そのような発想にはなりません。 DocumentObjectModel 1.0, 2, 3 ... で定義さている(No1さんが示したURL)、オブジェクトモデルがDOMです。それ以外は、 JavaScriptの関数であり、オブジェクトであり、HTMLオブジェクトです。また、ブラウザ独自に定義されている物もあります(IIEだけだと思うが)。 よく勘違いするのが、HTMLオブジェクトとDOMのオブジェクトの操作です。 formオブジェクトは、どちらでしょうか? >イベントハンドラだとか、タイマ機能 上記サイトなどみれば、わかるかと。ただ、DOMはあるいみ、HTMLとJavaScriptのオブジェクトやその操作を、再定義したといっても、いいかもしれません。なので、DOMからみると、すべてDOMのようにみえて当たりまえかと思います。 No1さんが指摘したサイトをよんだあと、再度 http://www.kmonos.net/alang/etc/ecmascript.php や、そこからたどる http://www.ecma-international.org/publications/standards/Ecma-262.htm をみれば、はっきりするかと。たとえば、そのさいとの言い回しだと 「ECMAScript のオブジェクトモデル」 なんて言い方をしています。DOMからみて、概念的にいえば、すべてDOMにはいるように見えるが、実態は、それぞれの所で定義されている物をさします。 その反面、「DOM」を「Document Object Model」ではなく オブジェクトモデルと言い方をすれば、上記サイトで定義されていることではなく、一般用語として扱われ、モデリング化された体系の事を指します。
その他の回答 (1)
- dscripty
- ベストアンサー率51% (166/325)
そろそろこれを読むときがきたんだと思うよ。 http://www.w3.org/DOM/ とりあえずなら、 http://www.w3.org/DOM/Activity のなかの、 「Document Object Model Level 2 Core」 の「Appendix E: ECMAScript Language Binding」 と 「Document Object Model Level 2 HTML」 の「Appendix D: ECMAScript Language Binding」 かな? どうしても日本語、なら w3.org DOM の日本語訳を探すか、 なければ、これをよんでみるとか? https://developer.mozilla.org/ja/DOM
お礼
回答ありがとうございます。 英語がダメなので探してみます。
お礼
回答ありがとうございます。 プログラミング言語を勉強するのもこれがはじめてなので、 なかなかオブジェクトという概念を理解できずにいます。 Javascriptには組み込みオブジェクトや組み込み関数があり、(dateやmathなど) WEBブラウザにHTMLが読み込まれると、オブジェクトが自動的に生成され(Window、navigator、document、historyなど) その中のdocumentオブジェクトや、 さらにその下位に位置するオブジェクト(formやimage)などを操作するのがDOMレベル0と呼ばれるもので、 それ以外のHTMLの要素(ノード?)にアクセスするためのプロパティやメソッド()をDOMレベル1ということでしょうか? そしれそれらを使って、ノードを変更したり移動したり削除したりすることを、 いわゆるDOM操作と読んでいるのでしょうか?