1. DOM とは
JavaScript は、ECMAScript、DOM、BOM の 3 つの部分で構成されており、Web ページのコンテンツを記述するためのメソッドとインターフェイス、つまりドキュメント オブジェクト モデルを表します。 Web ページでは、ページ (またはドキュメント) を構成するオブジェクトがツリー構造で構成されます。ドキュメント内のオブジェクトを表すために使用される標準モデルは DOM と呼ばれ、そのツリー構造は私たちがよく DOM ツリーと呼ぶものです。
Wikipedia での DOM の紹介は、より正確です: DOM は、クロスプラットフォームで言語に依存しないアプリケーション プログラミング インターフェイスです。つまり、現在の HTML、XHTML、または XML ドキュメントをツリー構造として処理します。各ノードはオブジェクトであり、それぞれノードはドキュメントの一部を表します。
2. DOM ノード
1. ノードのタイプ
DOM ツリーはさまざまなタイプのノードで構成されており、これらのノード タイプには、nodeType 値を渡すことができます。取得または必要なものが、対応するタイプのノードであるかどうかを判断します。
ノードタイプ | 要素ノード(ラベルノード) | 属性ノード | テキストノード(スペース、改行、テキスト) | コメントノード | ドキュメントノード |
nodeType値 | 1 | 2 | 3 | 8 | 9 |
nodeType 値を通じてタイプを判断することに加えて、nodeName を通じて要素ノードと属性ノードのノード名を表示したり、nadeValue を使用して属性ノードの属性値を表示したりすることもできます。
2. 要素ノードを取得する
document.getElementById(id); document.getElementByTagName(tagname); document.getElementByClassName(classname);
通常、JavaScript で HML の要素ノードを変更または使用したい場合は、それを呼び出す前にまず取得する必要があります。要素のId属性やClass属性を設定するか、タグ名を使用して取得します。ただし、getElementById() メソッドは XML では機能しないことに注意してください。XML ドキュメントでは、id 属性を使用して検索を実行する必要があり、この型は XML DTD で宣言する必要があります。
必要なノードを取得した後、ノードの関係を通じて他のノードを操作することもできます。ここでは、例として初期要素ノードとして p 要素を取り上げます。2.1 子ノード
p.children(); p.childNodes();
p配下の子ノードを取得し、p.children()は要素ノードの子ノードのみを取得できますが、p.childNodes()はすべてのタイプの子ノードを取得します。これは、空白のテキスト ノードが解析されることを意味します。
2.2 親ノード
p.parentNode(); p.offsetParent();
pの親ノードを取得、p.offsetParent()で位置属性付きの祖先ノードを取得、つまり、親ノードから開始します検索 親ノードに位置属性がない場合は、位置属性を持つノードが見つかるまで、親ノードの親ノードを検索します。
2.3 兄弟ノード
//下一个兄弟节点 p.nextElementSibling(); p.nextSibling();//上一个兄弟节点 p.previousElementSibling(); p.previousSibling();
子ノードを取得するのと同じように、ここに要素があるかどうかが重要です。と p .previousSibling () は空白ノードを解析するときに、p の下のスペースまたは復帰を取得します。違いは上記と同じです。
3. ノードの操作
HTMLで変更したノードの追加や削除に加えて、JavaScriptでノードを操作することもできます。
3.1 ノードの作成
//获取p的第一个子节点p.firstElementChild(); p.firstChild();//获取p的最后一个子节点p.lastElementChild(); p.lastElementChild();
テキストノードの作成は、通常、静的テキストを作成するために使用され、innerHTML形式のようなHTMLを含めることはできません。 creatTextNode() はより安全ですが、innerText にはブラウザの互換性の問題があります。
3.2 ノードの追加 作成したノードはHTMLに自動的に追加されず、作成したノードを操作する必要があります。 //创建节点/创建文本节点createElement();
createTextNode();
insertBefore()の第二引数は省略可能な引数であり、第二引数を書かないとデフォルトで末尾に追加され、appendChild();
//向尾部添加子节点 appendChild();
//向目标节点之前添加insertBefore(newElement,targetElement);
p.replaceChild(newElement,oldElement) は、新しいノードであっても古いノードであっても、p の子ノードである必要があります。
3.4 削除
//将旧节点换为新节点replaceChild(newElement,oldElement);
子ノードが削除されることに注意してください。
3.5 Clone/Copy
removeChild();
パラメータのブール値が true の場合、それはディープコピーです。つまり、ノード自体とその下のすべての子ノードがコピーされます。 パラメータのブール値がfalseの場合は浅いコピーとなり、ノード自体のみがコピーされます。
3.6
//深复制或浅复制cloneNode(boolean);
の判定 子ノードがあるかどうかを判定し、ブール値を返します。
要注意的一点就是class属性不能通过setAttribute(); 设置。 三、DOM的优缺点 DOM的优点主要表现在:易用性强,并且遍历简单,支持XPath,增强了易用性。 DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高。//获取节点属性getAttribute();//设置节点属性setAttribute();//删除节点属性removeAttribute();
以上がJavaScriptでのDOM操作を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
