DOM の表示と変更を開始する

Microsoft Edge DevTools を使用してページの ドキュメント オブジェクト モデル (DOM) を表示および変更する方法の基本については、次の対話型チュートリアル セクションに従ってください。

DOM と HTML の違いを理解するには、以下の 「付録: HTML と DOM」を参照してください。

DOM ノードを表示する

要素ツールの DOM ツリーは、DevTools で DOM 関連のすべてのアクティビティを実行する場所です。

ノードを検査する

特定の DOM ノードに関心がある場合、 Inspect は DevTools を開いてそのノードを調査するための高速な方法です。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。(新しいウィンドウまたはタブでリンクを開くには、リンクを右クリックします。 または、 Ctrl ( Windows、Linux) または Command (macOS) を長押しし、リンクをクリックします。
  1. レンダリングされた Web ページの [ ノードの検査] で、[ Michelangelo ] を右クリックし、[ 検査] を選択します。

    ノードの検査

    DevTools の Elements ツールが開きます。 ノードは <p>Michelangelo</p>DOM ツリーで強調表示されています。

    ミケランジェロ ノードの強調表示

  2. DevTools の左上隅にある [ 検査 (検査)] アイコンをクリックします。

    検査アイコン

  3. [ ノードの検査] でTokyo テキストをクリックします。 これで、 <p>Tokyo</p> DOM ツリーでノードが強調表示されます。

ノードの検査は、ノードのスタイルを表示および変更するための最初の手順でもあります。 「CSS の表示と変更の概要」を参照してください。

DOM ツリーでノードを選択したら、キーボードを使用して DOM ツリーを移動できます。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ キーボードを使用して DOM ツリーを移動する] で、[ Ringo ] を右クリックし、[ 検査] を選択します。 <p>Ringo</p> は DOM ツリーで選択されています。

    'Ringo' ノードの検査

  3. 上方向キーを 2 回押します。 <div> が選択されています。

    'div' ノードの検査

  4. 左方向キーを押します。 リストが <div> 折りたたまれます。

  5. 左方向キーをもう一度押します。 ノードの <div> 親が選択されています。 この場合、ID navigate-the-dom-tree-with-a-keyboard-1<section>持つのは です。

  6. 下方向キーを 2 回押すと、折りたたんだリストが再選択<div>されます。

    次のようになります。 <div>... </div>

  7. 右方向キーを押します。 一覧が展開されます。

ビューにスクロールする

DOM ツリーを表示すると、レンダリングされた Web ページに現在表示されていない DOM ノードに興味を持つ場合があります。 たとえば、ページの下部までスクロールし、ページの上部にあるノードに関心 <h1> があるとします。 ビューにスクロール すると、ノードを表示できるようにビューポートをすばやく再配置できます。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ 表示にスクロール] で、[ Magritte ] を右クリックし、[ 検査] を選択します。

  3. DOM の [例] ページの下部までスクロールします。

  4. ノードは <p>Magritte</p> 引き続き DOM ツリーで選択する必要があります。 表示されない場合は、[ スクロールして表示] に 戻り、最初からやり直します。

  5. ノードを <p>Magritte</p> 右クリックし、[ 表示にスクロール] を選択します。

    ビューにスクロールする

    ビューポートが上にスクロールして 、[マグリット ]ノードが表示されます。 [表示にスクロール] オプションが表示されない場合は、「付録: オプションがありません」を参照してください。

ノードを検索する

DOM ツリーは、文字列、CSS セレクター、または XPath セレクターで検索できます。

  1. [要素] タブをクリックするなどして、[要素] ツールにカーソルを合わせてください。

  2. Ctrl + F (Windows、Linux) または Command + F (macOS) を押します。 DOM ツリーの下部に検索バーが開きます。

  3. 月は厳しいミストレス」と入力します。 最後の文は DOM ツリーで強調表示されています。

    検索バーでのクエリの強調表示

検索バーでは、CSS セレクターと XPath セレクターもサポートされています。

DOM を編集する

DevTools で DOM を編集し、変更がページに与える影響をリアルタイムで表示できます。

テキスト コンテンツを編集する

ノードのテキスト コンテンツを編集するには、次のように DOM ツリー内のコンテンツをダブルクリックします。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ コンテンツの編集] で、[ Michelle ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーで、 タグと </p> タグの間<p>にあるテキスト Michelleをダブルクリックします。 テキストが強調表示され、選択されていることを示します。

    テキストを編集する

  4. を削除 Michelleし、「」と入力 Leelaし、 Enter キーを押して変更を確定します。 DOM 内のテキストは 、Michelle から Leela に変更されます。

属性を編集または追加する

既存の属性を編集するには、属性の名前または値をダブルクリックします。

新しい属性を追加するには、次のように、属性を追加する要素をダブルクリックします。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ 属性の編集] で、[ ハワード ] を右クリックし、[ 検査] を選択します。

  3. をダブルクリックします <p>。 ノードが選択されていることを示すテキストが強調表示されます。

    ノードを編集する

  4. 右方向キーを押し、スペースを追加し、「」と入力style="background-color:gold"し、Enter キーを押します。 ノードの背景色がゴールドに変わります。

    ノードにスタイル属性を追加する

ノード タグ名の編集

ノードのタグ名を編集するには、タグ名をダブルクリックし、新しいタグ名を入力します。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ ノード タグ名の編集] で、[ Hank ] を右クリックし、[ 検査] を選択します。

  3. をダブルクリックします <p>。 テキスト p が強調表示されています。

  4. を削除 pし、「」と入力 buttonし、 Enter キーを押します。 ノードが <p> ノードに <button> 変更されます。

    ノードの種類を ボタンに変更する

複数のノード、テキスト、属性を編集する

複数のノードのタグ名、テキスト コンテンツ、または属性を一度に変更するには、DOM ツリーの HTML テキスト エディターを使用して DOM の一部を次のように編集できます。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページで、[コンテンツの編集]、[ タグ名]、[属性 ] セクションを右クリックし、[ 検査] を選択します。

  3. DOM ツリーでノードを <section id="edit-as-html-1"> 右クリックし、[ HTML として編集] を選択します。 HTML エディターが DOM ツリー内に表示され、編集中のセクションの周りにボックスが表示されます。

    HTML エディター

  4. HTML エディターで行う変更を次のように入力します。

    • 属性の追加、削除、または編集。
    • ノードの追加または削除。
    • ノードのテキスト コンテンツまたはタグ名を編集する。

    たとえば、行の後に を<p>Marseille</p>追加<p>Dijon</p>します。

  5. HTML エディターの外側にある DOM ツリーをクリックするか、 Ctrl キーを押しながら Enter キーを押します。 編集内容が DOM ツリーとレンダリングされた Web ページに適用され、HTML エディターが閉じます。

    HTML エディターを閉じた後、追加のノードを含む新しい DOM ツリー

DOM ノードを並べ替える

DOM ツリー内のノードを並べ替えるには、次のようにノードをドラッグします。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ DOM ノードの並べ替え] で、[ Elvis Presley ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーで、リストの一番上にドラッグ <p>Elvis Presley</p> します。

    ノードをリストの一番上にドラッグします

強制状態

次のように、、、、 :visited:focusなどの:active:hover状態を維持するようにノードを:focus-within強制できます。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ 強制状態] で、 ハエの主にマウス ポインターを合わせます。 背景色がオレンジ色になります。

  3. [ハエの主] を右クリックし、[検査] を選択します。

  4. を右クリックし、[<p class="demo--hover">The Lord of the Flies</p>強制状態>:ホバー] を選択します。 そのオプションが表示されない場合は、以下の 「付録: オプションがありません」を参照してください。 実際にノードの上にマウス ポインターを置いていない場合でも、背景色はオレンジ色のままです。

ノードを非表示にする

次のように、 を押して H ノードを非表示にします。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ ノードを非表示にする] で、[ 星の宛先 ] を右クリックし、[ 検査] を選択します。

  3. H キーを押します。 ノードは、レンダリングされた Web ページから非表示になります。

    DOM ツリーが非表示にされた後のノードの外観

  4. H キーをもう一度押します。 ノードが再び表示されます。

ノードを削除する

次のように、Delete キーを押してノードを削除 します

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ ノードの削除] で、[ Foundation ] を右クリックし、[ 検査] を選択します。

  3. Delete キーを押します。 ノードが削除されます。

  4. Ctrl + Z (Windows、Linux) または Command + Z (macOS) を押します。 最後のアクションは元に戻され、ノードが再び表示されます。

コンソールのノードにアクセスする

DevTools には、 コンソール ツールから DOM ノードにアクセスしたり、それぞれに JavaScript 参照を取得したりするためのショートカットがいくつか用意されています。

$0 で現在選択されているノードを参照する

ノードを検査する場合、ノードの == $0 横のテキストは、変数 $0を使用してコンソールでこのノードを参照できることを意味します。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ 現在選択されているノードを $0 で参照する] で、[ 暗闇の左手 ] を右クリックし、[ 検査] を選択します。

  3. Esc キーを押して、クイック ビュー パネルでコンソール ツールを開きます。

  4. 「」と入力 $0 し、 Enter キーを押します。 式の結果は、 に評価<p>The Left Hand of Darkness</p>されることを$0示しています。

    コンソールの最初の $0 式の結果

  5. 結果にマウス ポインターを合わせます。 ビューポートでノードが強調表示されます。

  6. DOM ツリーをクリックし <p>Dune</p> 、コンソールをもう一度入力 $0 し、 Enter キーをもう一度押します。 ここで、 $0 は に <p>Dune</p>評価されます。

    コンソールの 2 番目の $0 式の結果

グローバル変数として格納する

ノードを何度も参照する必要がある場合は、グローバル変数として格納します。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ グローバル変数として保存] で、[ 大きなスリープ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーを右クリック <p>The Big Sleep</p> し、[ グローバル変数として保存] を選択します。 そのオプションが表示されない場合は、以下の「付録: オプションがありません」を参照してください。

  4. コンソールに「」と入力temp1し、Enter キーを押します。 式の結果は、変数がノードに評価されることを示しています。

    temp1 式の結果

JS パスをコピーする

自動テストで参照する必要がある場合は、ノードへの JavaScript パスをコピーします。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ JS パスのコピー] で、[ The Brothers Karamazov] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーを右クリック <p>The Brothers Karamazov</p> し、[ コピー>JS パス] を選択します。 document.querySelector()ノードに解決される式がクリップボードにコピーされました。

  4. Ctrl + V (Windows、Linux) または Command + V (macOS) を押して、式をコンソール ツールに貼り付けます。

  5. Enter キーを押して式を評価します。 Copy JS Path 式は、ノードに評価されます。

    JS パスのコピー式の結果

DOM の変更を中断する

DevTools を使用すると、JavaScript が DOM を変更するときに、ページの JavaScript を一時停止できます。

属性の変更を中断する

ノードの属性を変更する JavaScript を一時停止する場合は、属性変更ブレークポイントを使用します。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ 属性の変更時に中断] で、[ Sauerkraut ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーで、 を右クリック<p id="botm_target">Sauerkraut</p>し、[属性の変更時に>中断] を選択します。

    属性の変更を中断する

    オプションが表示されない場合は、「 付録: オプション がありません」を参照してください。

  4. [ 背景の設定 ] ボタンをクリックします。 これにより、ノードの style 属性が に background-color:thistle設定されます。 DevTools はページを一時停止し、 ソース ツールで属性を変更する原因となったコードを強調表示します。

    属性の変更の原因となったコード行を示すソース ツール

  5. [ スクリプトの再開 (スクリプトの再開)] をクリックして、JavaScript の実行を再開します。

ノードの削除時に中断する

特定のノードが削除されたときに一時停止する場合は、ノードの削除ブレークポイントを使用します。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ ノードの削除時の中断] で、[ Neuromancer ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーで、 を右クリックし、[<p id="target">Neuromancer</p>ノードの削除時に>中断] を選択します。 オプションが表示されない場合は、「 付録: オプション がありません」を参照してください。

  4. 上の [ 削除 ] ボタンをクリックします。 DevTools はページを一時停止し、ノードを削除する原因となったコードを強調表示します。

  5. [ スクリプトの再開 (スクリプト再開)] を選択します。

サブツリーの変更を中断する

サブツリー変更ブレークポイントをノードに配置すると、ノードの子孫のいずれかが追加または削除されると、DevTools によってページが一時停止されます。

  1. 新しいウィンドウまたはタブで DOM Examples デモ ページを開きます。

  2. レンダリングされた Web ページの [ サブツリーの変更時の中断] で、[ 詳細に対する火災 ] を右クリックし、[ 検査] を選択します。

  3. DOM ツリーで、上<p>A Fire Upon the Deep</p>のノードである を右クリック<div id="ul_target">し、[サブツリーの変更時に>中断] を選択します。 [サブツリーの変更] コマンドが表示されない場合は、「付録: オプションがありません」を参照してください。

  4. [ 子の追加] をクリックします。 ノードがリストに <p> 追加されたため、コードは一時停止します。

  5. [ スクリプトの再開 (スクリプト再開)] を選択します。

次のステップ

これは、DevTools の DOM 関連の機能の大部分をカバーしています。 DOM ツリーでノードを右クリックし、このチュートリアルで取り上げなかった他のオプションを試すことで、残りの機能を確認できます。 「要素ツールのキーボード ショートカット」も参照してください。

DevTools の概要に関するページを参照して、DevTools でできることをすべて確認してください。

付録: HTML と DOM

このセクションでは、HTML と DOM の違いについて説明します。

Web ブラウザーを使用してページを要求すると、サーバーは次のような HTML コードを返します。

<!doctype html>
<html>
    <head>
        <title>Hello, world!</title>
    </head>
    <body>
        <h1>Hello, world!</h1>
        <p>This is a hypertext document on the World Wide Web.</p>
        <script src="/script.js" async></script>
    </body>
</html>

その後、ブラウザーは HTML を解析し、次のように HTML に基づいてオブジェクトのツリーを作成します。

html
    head
        title
    body
        h1
        p
        script

ページの内容を表すオブジェクトまたはノードのこのツリーは、 ドキュメント オブジェクト モデル (DOM) と呼ばれます。 現在、DOM ツリーは HTML と同じように見えますが、HTML の下部で参照されているスクリプトで次のコードが実行されるとします。

const h1 = document.querySelector('h1');
h1.parentElement.removeChild(h1);
const p = document.createElement('p');
p.textContent = 'Wildcard!';
document.body.appendChild(p);

そのコードによってノードが h1 削除され、別の p ノードが DOM に追加されます。 完全な DOM は次のようになります。

html
    head
        title
    body
        p
        script
        p

ページの HTML が DOM と異なるようになりました。 つまり、HTML は最初のページ コンテンツを表し、DOM は現在のページ コンテンツを表します。 JavaScript がノードを追加、削除、または編集すると、DOM は HTML とは異なります。

詳細については、「 DOM の概要 」を参照してください。

付録: オプションがありません

このチュートリアルの手順の多くは、DOM ツリーでノードを右クリックし、ポップアップ表示されるコンテキスト メニューからオプションを選択するように指示します。 指定したオプションがコンテキスト メニューに表示されない場合は、ノード テキストから離れて右クリックするか、ノードの左側にあるボタンをクリックします ...

すべてのオプションが表示されない場合にクリックする場所

このページの一部の情報は、Google によって作成および共有されている著作物に基づいており、Creative Commons Attribution 4.0 International License に記載されている条項に従って使用されています。 元のページは ここに あり、 Kayce Basques (テクニカル ライター、Chrome DevTools & Lighthouse) によって作成されています。

クリエイティブ・コモンズ・ライセンス この作品は 、クリエイティブ・コモンズ属性4.0国際ライセンスに基づきライセンスされています