ホームページ ウェブフロントエンド jsチュートリアル javascript_javascript スキルで DOM の基本プロパティについて詳しく説明します。

javascript_javascript スキルで DOM の基本プロパティについて詳しく説明します。

May 16, 2016 pm 04:13 PM
dom javascript

構造とコンテンツの属性

ノードタイプ

すべてのノードにはタイプがあり、合計 12 種類のノードがあります。

コードをコピーします コードは次のとおりです:

インターフェースノード {
// NodeType
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
const unsigned short DOCUMENT_TYPE_NODE = 10;
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short NOTATION_NODE = 12;
...
}

最も重要な 2 つのノードは、要素ノード (1) とテキスト ノード (3) です。残りはほとんど使用されません。
たとえば、すべての子要素ノードをリストする場合、それを反復処理し、childNodes[i].nodeType != 1 を使用して検出できます。
以下は実装コードです:

コードをコピーします コードは次のとおりです:


許可された読者:


  • ジョン

  • ボブ



<スクリプト>
var childNodes = document.body.childNodes
for(var i=0; i if (childNodes[i].nodeType != 1) continue
アラート(childNodes[i])
}


*考え中
次のコードは何を要求しますか:

コードをコピーします コードは次のとおりです:




<スクリプト>
アラート(document.body.lastChild.nodeType)



ノード名、タグ名

nodeName と tagName の両方にノードの名前が含まれます。
document.body

の場合

alert( document.body.nodeName ) // BODY
HTML 内のすべてのノード名は大文字になります。

nodeName が大文字でない場合
この状況は比較的まれですが、興味がある場合は以下をお読みください。
おそらくすでにご存じのとおり、ブラウザには HTML モードと __XML モードという 2 つの解析方法があります。通常は HTML スキーマが使用されますが、XMLHttpRequest__ テクノロジーを使用して XML 文書を取得する場合は、XML スキーマが使用されます。
XML モードは、XHTML ドキュメントの Content-Type が xmlish に設定されている場合、Firefox でも使用されます。
ノード名は __XML スキーマに保存されるため、body または bOdY が表示される場合があります。
したがって、XMLHttpRequest__ テクノロジを介して XML がサーバーから HTML ドキュメントにロードされる場合、ノード名は保持されます。

NodeName と __tagName__ は要素に対して同じです。
ただし、nodeName 属性は非要素ノードにも存在し、これらのノードでは特別な値を持ちます:

alert(document.nodeName) // #document
ほとんどのノード タイプには tagName 属性がなく、IE のアノテーション ノードの tagName は ! です。
したがって、一般に、nodeName は tagName よりも意味があります。ただし、tagName は簡易版のようなものなので、要素ノードのみを扱う場合に使用できます。

innerHTML

innerHTML は HTML5 標準の一部です。詳細についてはリンクを参照してください
これにより、ノードのコンテンツへのテキストによるアクセスが可能になります。次の例では、document.body のすべてのコンテンツを出力し、新しいコンテンツに置き換えます。

コードをコピーします コードは次のとおりです:


段落


そして div

<スクリプト>
alert( document.body.innerHTML ) // 現在のコンテンツを読み取ります
Document.body.innerHTML = 'やったー!' // 内容を置き換えます


innerHTML には有効な HTML が含まれます。ただし、ブラウザは不正な形式の HTML も解析できます。
innerHTML はどの要素ノードでも使用できます。とてもとても便利です。

innerHTML ピットフォールズ

innerHTML は見た目ほど単純ではありません。初心者を待ち受けるいくつかの罠があり、経験豊富なプログラマーでも回避できない場合があります。

IE の __table__ ノードの innerHTML は読み取り専用です
IE では、COL、COLGROUP、FRAMESET、HEAD、HTML、STYLE、TABLE、TBODY、TFOOT、THEAD、TITLE、TR およびその他の要素の innerHTML は読み取り専用です。
TD を除き、IE の table タグ内のすべての innerHTML タグは読み取り専用です。

innerHTML を追加できません
ステートメントの構成から判断すると、innerHTML は次のような追加操作を実行できます。

chatDiv.innerHTML = "

こんにちは !
"
chatDiv.innerHTML = "調子はどうですか?"
しかし、実際に何が起こったのか:

1. 古いコンテンツは削除されます

2. 新しいコンテンツが解析されて挿入されます。コンテンツは追加されず、再生成されます。

したがって、= 操作の後に、smile.gif を含むすべての画像とその他のリソースが再ロードされます。

幸いなことに、innerHTML を使用せずにコンテンツを更新する他の方法があるため、上記の問題は発生しません。

ノード値

innerHTML は要素ノードに対してのみ有効です。
他のタイプのノードの場合は、nodeValue 属性を使用してコンテンツを取得します。次の例は、テキスト ノードとコメント ノードでどのように動作するかを示しています。

コードをコピーします コードは次のとおりです:


テキスト

<スクリプト>
for(var i=0; i アラート(document.body.childNodes[i].nodeValue)
}


In the above example, some warnings are empty because of blank nodes. Note that nodeValue === null for SCRIPT nodes. That's because SCRIPT is an element node. For element nodes, use innerHTML.

Summary

nodeType
 Node type. The most important thing is that the element node is 1, the text node is 3, and it is read-only.
nodeName/tagName
  The label name in uppercase letters. For non-element nodes, nodeName will also have a special value, which is read-only.
innerHTML
 The content of the element node, writable.
nodeValue
 The content of the text node, writable.
DOM nodes have other attributes depending on their type. For example, the INPUT tag has value and __checked__ attributes. A attributes have href and so on.

The above is the entire content of this article, I hope you all like it.

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

See all articles