目次
DOM
ノードレベル
Usage: line Manip DOM 要素を生成するパフォーマンスの問題を引き起こす、DOM ノードの大規模な再配置と再描画を避けるため
NodeList とその「近い関係」である NamedNodeMap と HTMLCollection は、DOM 全体を完全に理解するための鍵となります。 3 つのコレクションはすべて「動的」です。つまり、ドキュメントの構造が変更されるたびに更新されます。したがって、常に最新かつ最も正確な情報が保持されます。基本的に、すべての NodeList オブジェクトは、DOM ドキュメントがアクセスされるときにリアルタイムで実行されるクエリです。
オフセット寸法
ページ上の要素のオフセットを知るには、この要素の offsetLeft と offsetTop をその offsetParent の同じ属性に追加し、ルート要素までこのようにループします。基本的に正確な値です。次の 2 つの関数を使用して、要素の左オフセットと上オフセットをそれぞれ取得できます。
ブラウザーのビューポート サイズを決定するには、document.documentElement または document.body (IE7 より前のバージョン) の clientWidth と clientHeight を使用できます。
…………………………
document.getBoundingClientRect()メソッドは、長方形のオブジェクトを返します。 4 つの属性 (左、上、右、下) が含まれます。これらのプロパティは、ビューポートを基準としたページ上の要素の位置を示します。

DOM の知識の詳細な紹介

Jun 26, 2017 am 11:52 AM
知識

DOM

JavaScript は ECMAScript + DOM + BOM で構成されていることがわかっています。 ECMAScript は JS の構文であり、BOM は主にブラウザ オブジェクト (ウィンドウ) オブジェクトに関する関連知識の集合です。 DOM は、ドキュメント オブジェクトに関連する知識の集合です。

HTML と JS の間の対話はイベントを通じて実現されることがわかっています。 DOM は HTML (XML) ドキュメント用の API です。したがって、ユーザーと対話したい場合は、DOM が提供する API を使用して HTML 要素を取得し、対応するイベントを要素にバインドしてユーザーと対話する必要があります。したがって、DOM を理解し、習得することが非常に重要です。

この記事は、主に「JavaScript 上級プログラミング (3)」の DOM 関連の章をベースに、DOM の主要な知識を整理し、私の個人的な理解をいくつか織り交ぜています。

ノードレベル

HTML コードを書いたことのある地球上の人々は、各要素にインデントを追加し、関連する HTMl タグとコンテンツを記述し、最終的に Web ページに表示する必要があることを知っているはずです。したがって、このネストされた HTML コードとコンテンツがノード階層を構成します。

ECMAScript を理解している人なら誰でも、JS 内のすべてのオブジェクトは参照型に基づいて作成され、参照型は JS によってネイティブに提供される参照型 (配列、関数、RegExp、オブジェクトなど) であることも、参照型であることもできることを知っているはずです。カスタム参照型であること (参照型は new キーワードを通じて呼び出されます (コンストラクターとも呼ばれます))。すべてのオブジェクトは Object のインスタンス オブジェクトであり、Object.prototype 上のプロパティとメソッドを継承できます

そして、DOM にも同様の仕組みがあります。 DOM では、最上位の型は Node 型 であり、他のすべてのノードは Node 型 のプロパティとメソッドを継承できます。 Node 型は、実際には JS の Object コンストラクターと同等です。

その場合は、ノード タイプのプロパティとメソッドを見てみましょう

ノード タイプ

  • 属性 (継承を通じて特定のノードで次のプロパティを呼び出します)

    • nodeType

    • nodeName

    • nodeValue

    • ...

    • 次の兄弟
    • 前の兄弟
    • firstChild
    • lastChild
    • ownDocument (各ノードは 1 つの Document ノードにのみ所属できます)
    • メソッド(継承を通じて特定のノードで呼び出される以下のメソッド)

    • ···ノードの検索··
  • 要素を検索するメソッドはDocumentタイプにあります

    • · · · · · · · · · · · · · ... ... · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·…… · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·……
    • replaceChild(ele, target)
    • · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ノードをコピー · · ·
    • cloneNode(boolean) true:深いコピーを意味し、false:浅いコピーを意味します
    • · · · · · · · · · · · · · · · · · ドキュメント ノードの処理 · · ほとんど使用されません~
    • normalize()
    • ノード タイプのプロパティとメソッドは非常に多くありますが、他のすべてのノードはノードのプロパティとメソッドを継承できます。 type

      Document type
    • JS は、Document タイプを通じてドキュメントを表します。 document オブジェクトは HTMLDocument のインスタンスであり、HTML ページ全体を表します。同時に、ドキュメント オブジェクトはウィンドウ オブジェクトの下のプロパティでもあるため、グローバル オブジェクトとしてアクセスできます。

    • Attributes

    • document.documentElement (HTML要素を表す)、およびHTML要素は document.childNodes[1] を通じて取得できます

    • document.body (body要素を表す)

    • document .head (head要素を示します)

    • document.compatMode (ブラウザが使用するレンダリング方法を示します。「CSS1Compat」は標準モードを意味し、「BackCompat」は混合モードを意味します)

    • document.charset (実際のレンダリングを示します)ドキュメントの文字セットで使用されるメソッド。新しい文字セットの指定にも使用できます)

    • document.dataset (document.dataset.myname などのデータセットを介してカスタム プロパティにアクセスすることを示します)

    • document.docType (要素を示します)、ブラウザ互換性があります 性的な質問

    • document.title (< title > 要素を表します)

    • · · Web ページリクエスト · ·

document.URL (URL アドレスを取得) )

document.domain ( URL、パス名からドメイン名を取得)

  • document.attributes (NodeList と同様に、ノードの属性を取得し、NamedNodeMap オブジェクトを返します)

  • メソッド

    • · 要素の検索 · ·

    • document.getElementById( id ) 要素を返します

    • document.getElementsByTagName(classname) は、NodeList オブジェクトと同様に、0 個以上の要素を含む HTMLCollection オブジェクトを返します

    • document.getElementsByName(ele) は、指定された name 属性を持つ要素を返しますHTMLCollection オブジェクトを返します

    • document.getElementsByClassName(className) は、一致するすべての NodeList オブジェクトを返します (このメソッドは、Document タイプと Element タイプで呼び出すことができます)

    • document.querySelector(selector) セレクターは、CSS セレクターを表します 最初のオブジェクトを返しますパターンに一致する要素が見つからない場合は、null を返します (Document タイプ、DocumentFragment タイプ、Element タイプはすべてこのメソッドを呼び出すことができます)

    • document.querySelectorAll(selector) セレクターは、CSS セレクターを意味します。 正常に一致した NodeList オブジェクト (

      Document 型、DocumentFragment 型、Element 型はすべてこのメソッドを呼び出すことができます)

    • · ·要素の作成 · · ·

    • document.createElement() (作成された要素は Free 状態なので、挿入する必要があります) appendChild を介して)

    • · · テキスト ノードを作成します · · ·

    • document.createTextNode() (作成された要素は自由な状態なので、appendChild を通じて挿入する必要があります)

    • · ·要素サイズ???

    • document.getBoundingClientRect()

    要素タイプ

    • 属性

      • id

      • title

      • lang
      • クラス名
      メソッド
      • getAttribute(ele) 属性を取得
      • setAttribute(name, value) 属性を設定
      • removeAttribute(ele) 属性を削除
      • getElement (エレ) を入手してくださいele
      Text type

      attribute
      • nodeValueデータ(Textノードのテキストにアクセス)
      DocumentFragment type

    Usage: line Manip DOM 要素を生成するパフォーマンスの問題を引き起こす、DOM ノードの大規模な再配置と再描画を避けるため

      メソッド
      • document.createDocumentFragment() (ドキュメントフラグメントの作成を表す)
      NodeList オブジェクト

    NodeList とその「近い関係」である NamedNodeMap と HTMLCollection は、DOM 全体を完全に理解するための鍵となります。 3 つのコレクションはすべて「動的」です。つまり、ドキュメントの構造が変更されるたびに更新されます。したがって、常に最新かつ最も正確な情報が保持されます。基本的に、すべての NodeList オブジェクトは、DOM ドキュメントがアクセスされるときにリアルタイムで実行されるクエリです。

    要素サイズ

    オフセット寸法

    ページ上の要素のオフセットを知るには、この要素の offsetLeft と offsetTop をその offsetParent の同じ属性に追加し、ルート要素までこのようにループします。基本的に正確な値です。次の 2 つの関数を使用して、要素の左オフセットと上オフセットをそれぞれ取得できます。

    function getElementLeft(element){
     var actualLeft = element.offsetLeft;
     var current = element.offsetParent;
     while (current !== null){
     actualLeft += current.offsetLeft;
     current = current.offsetParent;
     }
     return actualLeft;
    }
    
    function getElementTop(element){
     var actualTop = element.offsetTop;
     var current = element.offsetParent;
     while (current !== null){
     actualTop += current. offsetTop;
     current = current.offsetParent;
     }
     return actualTop;
    }
    ログイン後にコピー

    クライアント領域のサイズ (クライアントのディメンション)

    ブラウザーのビューポート サイズを決定するには、document.documentElement または document.body (IE7 より前のバージョン) の clientWidth と clientHeight を使用できます。

    function getViewport(){
     if (document.compatMode == "BackCompat"){
     return {
     width: document.body.clientWidth,
     height: document.body.clientHeight
     };
     } else {
     return {
     width: document.documentElement.clientWidth,
     height: document.documentElement.clientHeight
     };
     }
    }
    ログイン後にコピー

    スクロールディメンション(スクロールディメンション)

    …………………………

    要素のサイズを決定する

    document.getBoundingClientRect()メソッドは、長方形のオブジェクトを返します。 4 つの属性 (左、上、右、下) が含まれます。これらのプロパティは、ビューポートを基準としたページ上の要素の位置を示します。

    以上がDOM の知識の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

    衝撃的な win10x システム知識を学びましょう 衝撃的な win10x システム知識を学びましょう Jul 14, 2023 am 11:29 AM

    最近、win10X システムの最新イメージ ダウンロードがインターネット上で流出しましたが、このイメージは一般的な ISO とは異なり .ffu 形式であり、現在は Surface Pro7 エクスペリエンスでのみ使用できます。 Win10x システムの最新評価を見てみましょう! Win10x システムの最新評価 1. Win10X との最大の違いタスク バーの中央にボタンが配置されており、ピン留めされたアプリケーションに加えて、Android や iOS フォンと同様に、最近起動したアプリケーションもタスク バーに表示できます。 2. もう 1 つは、新しいシステムの「スタート」メニューがファイルをサポートしていないことです。

    Golang を理解する: 開発者にとって必須の知識 Golang を理解する: 開発者にとって必須の知識 Feb 23, 2024 am 10:51 AM

    Go 言語としても知られる Golang は、Google によって開発されたオープンソース プログラミング言語です。 2007 年のリリース以来、Golang はソフトウェア開発の分野で徐々に登場し、ますます多くの開発者に支持されています。静的に型付けされコンパイルされた言語である Golang には、効率的な同時処理機能、簡潔な構文、強力なツールのサポートなど、多くの利点があり、クラウド コンピューティング、ビッグ データ処理、ネットワーク プログラミングなどで幅広い用途が期待できます。この記事では、Golang の基本概念を紹介します。

    チャットボットはナレッジ グラフを通じてどのように質問に答えますか? チャットボットはナレッジ グラフを通じてどのように質問に答えますか? Apr 17, 2023 am 09:13 AM

    序文 1950 年、チューリングは画期的な論文「コンピューティング機械とインテリジェンス」(コンピューティング機械とインテリジェンス) を発表し、ロボットに関する有名な判断原則であるチューリング テスト (チューリング判定としても知られています) を提案しました。人間とAI機械の反応の違いを区別できない場合、その機械には人工知能が備わっていると結論付けることができます。 2008年、マーベルの「アイアンマン」に登場するAI執事ジャービスは、AIが人間(トニー)に投げかけられたさまざまな問題を解決するのにどのように正確に役立つかを人々に知らしめました... 図1:AI執事ジャービス(画像出典:インターネット) 2023年、テクノロジーの世界で2C的にブレイクした無料のチャットロボット「Chat」が人気を博した。

    知識の抽出について話しましょう。学習しましたか? 知識の抽出について話しましょう。学習しましたか? Nov 13, 2023 pm 08:13 PM

    1. はじめに 知識の抽出とは通常、豊富な意味情報を含むタグやフレーズなどの非構造化テキストから構造化情報をマイニングすることを指します。これは、コンテンツ理解や製品理解などのシナリオで業界で広く使用されています。ユーザーが作成したテキスト情報から価値のあるタグを抽出することで、コンテンツや製品に適用されます。知識の抽出には、通常、抽出されたタグまたはフレーズの分類が伴います. は、通常、固有表現認識タスクとしてモデル化されます。一般的な固有表現認識タスクは、固有表現コンポーネントを識別し、そのコンポーネントを地名、人名、組織名、その他の種類に分類することです。ドメイン関連タグ単語の抽出は、識別および分割します。シリーズ (Air Force One、Sonic 9)、ブランド (Nike、Li Ning)、タイプ (靴、衣類、デジタル)、スタイル (

    Linux サーバーのセキュリティを理解する: 必須の知識とスキル Linux サーバーのセキュリティを理解する: 必須の知識とスキル Sep 09, 2023 pm 02:55 PM

    Linux サーバーのセキュリティについて理解する: 必須の知識とスキル インターネットの継続的な発展に伴い、Linux サーバーはさまざまな分野でますます使用されています。しかし、サーバーには大量の機密データが保存されているため、そのセキュリティ問題にも注目が集まっています。この記事では、サーバーを攻撃から保護するために役立つ、Linux サーバーのセキュリティに関する重要な知識とスキルを紹介します。オペレーティング システムとソフトウェアの更新と保守 オペレーティング システムとソフトウェアをタイムリーに更新することは、サーバーを安全に保つために重要です。なぜなら、あらゆるオペレーティング システムとソフトウェアが

    HTML グローバル属性の重要な知識と実践的なスキルをマスターする HTML グローバル属性の重要な知識と実践的なスキルをマスターする Jan 06, 2024 am 08:40 AM

    HTML のグローバル属性を学習するための必須の知識と実践的なスキル HTML (HyperTextMarkupLanguage) は、Web ページの構造を作成するために使用されるマークアップ言語です。 Web ページを構築するとき、多くの場合、さまざまなタグや属性を使用して、ページの外観や動作を定義する必要があります。すべての HTML 属性の中でも、グローバル属性は非常に重要なタイプの属性であり、すべての HTML タグに適用でき、Web 開発者に強力な柔軟性とカスタマイズ機能を提供します。 HTML の学習と使用

    jQuery 兄弟ノードの詳細については、こちらをご覧ください。 jQuery 兄弟ノードの詳細については、こちらをご覧ください。 Feb 27, 2024 pm 06:51 PM

    jQuery がフロントエンド開発で最もよく使用される JavaScript ライブラリの 1 つであり、HTML ドキュメントを操作するための簡潔かつ強力な方法であることは疑いの余地がありません。 jQuery では、兄弟ノードは、指定された要素と同じ親要素を持つ要素です。フロントエンド開発者にとって、jQuery 兄弟ノードを深く理解することは非常に重要です。この記事では、jQueryを使って兄弟ノードを操作する方法と、具体的なコード例を添付して紹介します。 1. jQuery で兄弟ノードを見つけるには、次のように渡します。

    習得すべき JSP 組み込みオブジェクトの知識: JSP で一般的に使用される組み込みオブジェクトとは何かを理解する 習得すべき JSP 組み込みオブジェクトの知識: JSP で一般的に使用される組み込みオブジェクトとは何かを理解する Jan 10, 2024 pm 04:39 PM

    JSP 組み込みオブジェクトを学習するために必要な知識: jsp の組み込みオブジェクトを習得するには、特定のコード例が必要です。JSP (JavaServerPages) は動的 Web ページ開発技術です。その利点は、動的プログラミング言語を組み合わせていることです。 (Java など) および静的ページの機能。 JSP では、組み込みオブジェクトは、開発者によるデータ処理とページのレンダリングを容易にする重要な役割を果たします。この記事では、一般的に使用されるいくつかの JSP 組み込みオブジェクトを紹介し、理解を深めるために具体的なコード例を示します。リクエストペア

    See all articles