ホームページ ウェブフロントエンド jsチュートリアル DOM(Document Object Model)とはドキュメントオブジェクトモデル_DOM

DOM(Document Object Model)とはドキュメントオブジェクトモデル_DOM

May 16, 2016 pm 05:55 PM

D:document ドキュメント ブラウザによってロードされたページ

DOM O:object オブジェクト ページとページ内の要素はオブジェクトです

M:module モデル ページの要素組織形式

DOM は、プログラムやスクリプトがドキュメントのコンテンツ、スタイル、構造に動的にアクセスして変更できる、プラットフォーム非依存および言語非依存の API として W3C 組織によって設計されています。

DOM は Web ブラウザーの動作仕様です。DOM のおかげで、JavaScript は Web 標準言語としての地位を確立し、Web 分野におけるいわゆる「一度書いたらどこでも実行できる」という目標を達成しました。


ドキュメント オブジェクト モデル (DOM) は、HTML および XML ドキュメントのプログラミング インターフェイスです。これは文書の構造化された表現を提供し、文書の内容と表現を変更することができます。私たちが最も懸念しているのは、DOM が Web ページをスクリプトや他のプログラミング言語と接続していることです。

スクリプト開発者は、ドキュメント オブジェクトのプロパティ、メソッド、イベントを通じて、動的な Web ページ要素を制御、操作、作成できます。 Web ページの各要素 (HTML タグ) はオブジェクト (オブジェクト、いわゆる「オブジェクト」は現地語で「物」を意味します。台湾では通常、オブジェクトという言葉は「オブジェクト」と訳されます) に対応します。 Web ページ上のタグは層ごとに入れ子になっており、最も外側の層は です。ドキュメント オブジェクト モデルも層ごとに入れ子になっていますが、通常はツリーの形状として理解されます。ツリーのルートはウィンドウまたはドキュメント オブジェクトであり、最も外側のラベルの周囲、つまりドキュメント全体に相当します。ツリーのルート (通常、ツリーは遺伝的家系図や家系図のように逆さまに描かれます。ルートが唯一の共通の祖先です) の下にはサブレベル オブジェクトがあり、これらのオブジェクトには、ルート オブジェクトを除き、すべてのオブジェクトには独自の親オブジェクトがあり、同じオブジェクトの子オブジェクト間の関係は兄弟関係です。

この「父、息子、兄弟」から構成される「単為生家系図」のフレーム構造では、Web ページの各要素を正確に配置することができます。ドキュメントオブジェクトモデルは、ウェブページ全体をこのようなツリー構造に編成し、ツリー構造の各要素をノードとみなします。 JavaScript を含むさまざまなプログラミング言語は、ドキュメント オブジェクト モデルを通じて Web ページのさまざまな詳細にアクセスし、変更することができます。

World Wide Web Consortium (W3C) は、ドキュメント オブジェクト モデルの一連の標準を開発し、さらに関連する標準を開発中です。これらの標準の一部をサポートすることに加えて、最新のブラウザは、W3C 標準が策定される前に普及していた歴史的で確立されたプログラミング インターフェイスの一部もサポートしています。言い換えれば、現在ブラウザーで使用されているテクノロジーの歴史は複雑であり、人々が一般的に使用している DOM テクノロジーの中には、従うべき標準がないものもあります。

実践指向のテクノロジーを完全に理解するために、すべての一般的な DOM (IE ブラウザーでは「異なる」テクノロジーを含む) の詳細を説明します。


DOM と JavaScript

QQ、MSN、電子メールでよく聞かれる「JavaScript 関連」の質問の 95% は、実際には DOM の問題に関するものです。人々は習慣的に DOM について話すことを好みません。JavaScript について話すか、「Ajax」(かつて人気を博した「概念」ですが、前世紀末の「DHTML」と同じように、最近は落ち着いてきています)について話します。これらのホットワードの出現については、個人的には非常に嬉しく思います。なぜなら、それが人々の JavaScript テクノロジへの熱意をもたらすからです。次のホットワードは何でしょうか? 疑似マッシュアップはどうでしょうか?

JavaScript を使用して Web ページ上で実行されるすべての操作は、DOM を通じて実行されます。 DOM はブラウザに属するものであり、JavaScript 言語仕様で規定されているコアコンテンツではないため、JavaScript 言語リファレンスのヘルプドキュメントをダウンロードして確認しても、適切な document.write メソッドさえ見つかりません。女性や子供には知られています。

次のコードの機能は、プロンプト ボックスを使用して、Web ページ内のすべてのリンクの URL を 1 つずつ表示することです。コード内の赤でマークされた部分が DOM です。
コードをコピー コードは次のとおりです。

varアンカーTags = document.getElementsByTagName("a ");
for (var i = 0; i {
alert("この a 要素の Href は : "アンカーTags[i].href "n") ;
}

このようにすると、どれがコアの JavaScript で、どれが DOM で、それぞれがどのような役割を果たしているかが一目でわかります。

var anchorTags =
anchorTags という名前の JavaScript 変数を作成します。

document.getElementsByTagName("a")
Document インターフェイスは DOM1 Core 仕様で定義された最初のインターフェイスであり、 document は Document インターフェイスを実装するホスト オブジェクトです。ドキュメントは Web ページ上のすべてを制御します。
DOM1 コアは、Document インターフェースの getElementsByTagName() メソッドを定義します。このメソッドは、ノード リスト (NodeList) を返します。これは、一致するパラメーター条件を満たすすべてのタグを含むノードをドキュメント内に出現する順序で並べて含む DOM 固有の配列です。したがって、anchorTags 変数はノードのリストになります。

;
セミコロンは JavaScript の文の終わりの記号です。

for (var i = 0; i <
これは、プログラミング言語における典型的な「for ループ」です。ループ変数 i が宣言され、anchorTags ノード リスト内の各ノードが 1 つずつ処理されますこれも JavaScript のものです。

anchorTags.length
DOM1 コアは、NodeList インターフェイスの length 属性を定義します。これは、ノード リストに含まれるノードの数です。これは、JavaScript 配列にも length 属性があります。

alert(
alert() は、メソッドに渡されたパラメーター (文字列) を表示するプロンプト ボックスをポップアップする DOM メソッドです。これは一般に DOM レベル 0 (DOM レベル 0) として知られています。または、DOM0 は歴史上確立されたプログラミング インターフェイスの 1 つです。DOM0 は「一部のブラウザでサポートされている」プログラミング インターフェイスのセットです (実際、DOM0 をサポートしていないブラウザは市場に存在しません。一部のソフトウェア ホビーでのみです)。 🎜>
"この a 要素の Href は次のとおりです。"
文字列リテラルと文字列リンカー。

anchorTags[i].href
href は、HTMLAnchorElement インターフェイスの属性です。 DOM1 HTML 仕様では、リンク () 要素の href 属性の値を返します。ここでは、i 番目の配列項目にアクセスするための構文と同じ、anchorTags[i] のような使用法を使用します。 JavaScript では、言語に依存しない、いわゆる「DOM 方式」アクセス (特定の言語に関係なく) ノード リスト内の項目にアクセスする方法は、NodeList インターフェイスで定義されている item() メソッド、anchorTags を使用します。 .item(1).href ですが、ほとんどの JavaScript 実装では、この単純な配列のような構文を使用できます。これは、ほとんどの人が実際に使用するものです。連結。文字列の末尾に復帰文字を追加します。

}
「for ループ」が終了します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptとWeb:コア機能とユースケース JavaScriptとWeb:コア機能とユースケース Apr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScript in Action:実際の例とプロジェクト JavaScript in Action:実際の例とプロジェクト Apr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンの理解:実装の詳細 JavaScriptエンジンの理解:実装の詳細 Apr 17, 2025 am 12:05 AM

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. JavaScript:開発環境とツール Python vs. JavaScript:開発環境とツール Apr 26, 2025 am 12:09 AM

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

JavaScript通訳者とコンパイラにおけるC/Cの役割 JavaScript通訳者とコンパイラにおけるC/Cの役割 Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

Python vs. JavaScript:ユースケースとアプリケーションと比較されます Python vs. JavaScript:ユースケースとアプリケーションと比較されます Apr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

See all articles