【基本を抑える_05】DOM操作

DOMの基本

javaScriptの中で、ボタンやテキストなどの操作を行うことができます。

そのような操作対象にできるものをjavaScriptではDOMと呼びます。

DOMの操作する範囲

DOMの操作する範囲は、イメージとして、

ブラウザの実際にコンテンツを表示している範囲と考えましょう。

イメージとしては、

この赤枠部分のコンテンツ部分が対象の範囲と考えてください。

DOMの構造

DOM自体は、ブラウザのコンテンツ部分の範囲を扱うことができます。

この扱う範囲のDOMは、階層化になっているという事を把握しておきましょう。

例えば、

シンプルな、以下のHTMLだとすると

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>サンプル</title>
  </head>
  <body>
    <img src="...."/>
    <h1>タイトル</h1>
    <p>説明</p>
  </body>
</html>

DOMの階層も、HTMLの構造と同じように、

このように「ツリー状」の階層化された構造になっています。

DOM操作をする場合のjavaScriptの注意点

javaScriptをHTMLファイルから、

外部ファイルとして読み込む時に、

DOM操作を行うためには、

  • HTMLタグの要素の後にjavaScriptのコードを読み込む

ということが必要です。

具体的には、

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>サンプル</title>
    <script type="text/javascript" src="sample.js"></script>
  </head>
  <body>
    <img src="...."/>
    <h1>タイトル</h1>
    <p>説明</p>
  </body>
</html>

このコードでは、

このように、

HTMLの読み込む順序の関係で、

javaScriptの中で、

DOM操作をしようとしても、

bodyタグの中身が読み込まれていないため、

DOM操作ができません。

そのため、

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>サンプル</title>
  </head>
  <body>
    <img src="...."/>
    <h1>タイトル</h1>
    <p>説明</p>
  </body>
  <script type="text/javascript" src="sample.js"></script>
</html>

このように、

HTMLのbodyタグの後に書くことで、

読み込んでいる要素に対して、

DOM操作が可能になるので、

javaScriptの読み込む場所に関しては注意しましょう。

DOM操作の基本

javaScriptのDOM操作は、「querySelector」を使用します。

querySelectorの書き方

querySelectorは、以下のように書きます。

let sample = document.querySelector('対象のタグ/クラス/ID');

document.querySelectorで取得した値を、sampleという変数に入れています。

DOM操作で、

document.querySelectorに設定する値は、

以下の3パターンを把握しておきましょう。

  • パターン1:対象のタグを指定する場合
  • パターン2:対象のクラスを指定する場合
  • パターン3:対象のIDを指定する場合

パターン1:対象のタグを指定する場合

タグを指定する場合、querySelectorに直接、タグの名前を設定します。

<!-- DOM操作したいタグ(h4タグ) -->
<h4>サンプルのh4タグです。</h4>
// h4タグのDOMを取得する
let sample = document.querySelector('h4');

// 取得したDOM(h4タグ)の値を書き換える
sample.textContent = 'h4タグの値を書き換えました';

パターン2:対象のクラスを指定する場合

クラスを指定する場合、querySelectorに直接、クラスの名前を設定します。

<!-- DOM操作したい要素(クラスを設定) -->
<div class="test">サンプルのh4タグです。</div>
// クラスが設定されたタグのDOMを取得する
let sample = document.querySelector('.test');

// 取得したDOM(クラス名test)の値を書き換える
sample.textContent = '値を書き換えました';

パターン3:対象のIDを指定する場合

IDを指定する場合、querySelectorに直接、IDの名前を設定します。

<!-- DOM操作したいタグ(IDを指定) -->
<div id="test">サンプルのh4タグです。</div>
// ID(test)のDOMを取得する
let sample = document.querySelector('#test');

// 取得したDOM(IDがtest)の値を書き換える
sample.textContent = '値を書き換えました';

実際の動きをみる

実際に上記の3パターンについて、

動きをみてみたいのであれば、

以下のサイトでみてみましょう。

DOM操作の古い方法

javaScriptのDOM操作に関して、昔ながらのやり方があります。

DOM操作の昔ながらのやり方として、いくつかの方法があります。

その中で、2つの方法を紹介しておきます。

  • Document.getElementById()で設定する方法
  • Document.getElementsByClassName()で設定する方法

ここで、上記の2つの方法を説明しますが、

できれば、「querySelector」を使えるようにしましょう。

Document.getElementById() を使う方法

getElementByIdは、

IDを指定することでDOMを取得することができます。

<div id="test">サンプル</div>
let sample = Document.getElementById('test');

Document.getElementsByClassName()を使う方法

getElementsByClassNameは、

classを指定することでDOMを取得することができます。

<div class="test">サンプル</div>
let sample = document.getElementsByClassName('test');

参考サイト

この記事の内容や、

Dom操作のメソッドなど、

「初心者のためのWeb入門」

のサイトに記載があるので、

そちらを参考にしてください。