プログラミング

JavaScript超入門⑦ DOMとクリックイベントを使おう

querySelector、textContent、addEventListenerを使い、ボタンを押すと表示が変わるWebページを作ります。

第7回では、JavaScriptからHTMLを操作します。

ブラウザがHTMLを、JavaScriptから扱える形にしたものをDOMと呼びます。

HTML要素を取得する

<p id="message">ボタンを押してください</p>
<button id="changeButton">変更する</button>

JavaScriptではquerySelectorを使って要素を取得できます。

const message = document.querySelector("#message");
const button = document.querySelector("#changeButton");

#messageは、idがmessageの要素を選ぶ書き方です。

文字を変更する

message.textContent = "文字を変更しました";

textContentへ新しい文字列を入れると、画面上の文章が変わります。

クリックイベント

button.addEventListener("click", () => {
  message.textContent = "クリックされました";
});

クリックや入力など、ブラウザで起きる出来事をイベントと呼びます。

addEventListenerは、指定したイベントが起きたときに関数を実行します。

完成したHTML

<!doctype html>
<html lang="ja">
  <body>
    <p id="message">ボタンを押してください</p>
    <button id="changeButton">変更する</button>

    <script>
      const message = document.querySelector("#message");
      const button = document.querySelector("#changeButton");

      button.addEventListener("click", () => {
        message.textContent = "クリックされました";
      });
    </script>
  </body>
</html>

scriptタグは、操作するHTML要素より後ろに置いています。HTMLが読み込まれた後で要素を探せるようにするためです。

小さな練習

ボタンをもう一つ追加し、押すと最初の文章へ戻るようにしてください。

模範解答

<p id="message">ボタンを押してください</p>
<button id="changeButton">変更する</button>
<button id="resetButton">元に戻す</button>

<script>
  const message = document.querySelector("#message");
  const changeButton = document.querySelector("#changeButton");
  const resetButton = document.querySelector("#resetButton");

  changeButton.addEventListener("click", () => {
    message.textContent = "クリックされました";
  });

  resetButton.addEventListener("click", () => {
    message.textContent = "ボタンを押してください";
  });
</script>

解説

新しいボタンには重ならないidを付け、querySelectorで取得します。resetButtonのクリックイベントでは、message.textContentへ最初と同じ文章を代入しています。

まとめ

  • DOMを通してHTML要素を操作できます。
  • querySelectorで要素を取得できます。
  • addEventListenerでクリック時の処理を登録できます。

前の記事:JavaScript超入門⑥ オブジェクトとJSONを使おう

次の記事:JavaScript超入門⑧ カウンターアプリを完成させよう

← 記事一覧へ戻る