【基本を抑える_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入門」
のサイトに記載があるので、
そちらを参考にしてください。

