HTMLとJSで文章を条件分岐して動的に変化させる方法まとめ

HTML条件分岐の解説イメージHTML
この記事は約16分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

現代のウェブ開発において、HTMLとJavaScriptは切っても切り離せない存在です。

HTMLがウェブページの基盤となる骨組みを提供する一方で、JavaScriptはその静的な枠組みに動きを与える役割を担います。

この記事では、HTMLとJavaScriptを使用して、ユーザーのアクションや条件に応じてコンテンツが動的に変化する方法に焦点を当てています。

初心者から中級者向けに、基礎知識の確認から具体的なプログラミング技法まで、段階を追って解説していきます。

○この記事で学べること

この記事を通じて、HTMLとJavaScriptによる基本的な条件分岐の使い方を学び、実際に動的なウェブページを作成する技術を習得することができます。

具体的なサンプルコードを用いた説明により、理論だけでなく実践的なスキルも身につけることが可能です。

また、プログラミング中に遭遇する可能性のある一般的なエラーの解決策についても触れていますので、実務でのトラブルシューティング能力の向上も期待できます。

○HTMLとJavaScriptの基礎知識

HTML(HyperText Markup Language)は、ウェブページの構造を定義するためのマークアップ言語です。

一方、JavaScriptはウェブページにインタラクティビティを加えるプログラミング言語であり、ユーザーとの対話やデータの動的な処理が可能です。

HTMLとJavaScriptを組み合わせることで、静的なページに生命を吹き込み、訪問者にとってより魅力的で反応的な体験を提供することができます。

この基礎を踏まえ、次に進む前にHTMLとJavaScriptがどのように連携して動作するのかを理解することが重要です。

HTMLはウェブページの骨格を形成し、JavaScriptはその骨格に命を吹き込むためのスクリプトとして機能します。

例えば、ボタンがクリックされたときに何かしらの動作をするようJavaScriptを使用して設定することが可能です。

さらに、JavaScriptはHTMLの要素を「選択」して「操作」することができます。

これにより、特定のイベントが発生した際にページの一部を更新するなどの動的な変更を加えることができるのです。

このプロセスを理解することが、効果的なウェブページを作成する上で非常に重要になります。

ここまでの説明でHTMLとJavaScriptの基本的な関係性と役割についておさらいしましたが、次ではより具体的にこれらの技術を使ってどのように条件分岐を実現するのかを見ていきましょう。

●HTMLで条件分岐とは

HTML自体にはプログラミング言語としての条件分岐の機能は備わっていません。

しかし、JavaScriptを利用することで、HTMLの構造上で条件に応じた動的な変更を行うことが可能です。

これにより、ユーザーの行動や環境に基づいて異なる情報を表示するなど、よりインタラクティブなウェブページを作成することができます。

ここでは、HTMLとJavaScriptを使用して条件分岐を実装する基本的な方法を解説します。

○条件分岐を使うメリット

条件分岐を用いることで、同一のウェブページ上においても、訪問者の環境や選択に応じてコンテンツを変化させることができます。

これはユーザー体験を向上させるだけでなく、ウェブサイトの機能性を高め、訪問者の留まる時間を延ばす効果が期待できます。

例えば、ユーザーの地理的位置に基づいて異なる言語やコンテンツを表示したり、ログイン状態に応じて表示する情報を変えたりすることが可能です。

○基本的な条件分岐の概念

条件分岐とは、ある条件が真の場合にはこの処理を行い、偽の場合には別の処理を行うというプログラミングの基本概念です。

JavaScriptにおける条件分岐は、ifelseelse if、そして switch 文を用いて実現されます。

ここでは、HTML内でJavaScriptを使って簡単な条件分岐をするサンプルコードを紹介します。

<!DOCTYPE html>
<html>
<head>
    <title>条件分岐のサンプル</title>
</head>
<body>
    <script>
        var visitorAge = prompt("あなたの年齢は?");
        if (visitorAge >= 18) {
            document.write("あなたは成人です。");
        } else {
            document.write("あなたは未成年です。");
        }
    </script>
</body>
</html>

上記のコードでは、ユーザーに年齢を尋ね、18歳以上の場合は「あなたは成人です。」と表示し、そうでない場合は「あなたは未成年です。」と表示します。

このように、条件分岐を使用することでユーザーの入力に基づいて異なるアクションを取ることが可能となります。

実行結果としては、ウェブページを訪れたユーザーがプロンプトで年齢を入力すると、その入力値に応じてページ上にメッセージが動的に表示されることになります。

これは非常に基本的な例ですが、実際のウェブ開発ではより複雑な条件と組み合わせて、さまざまなユーザー体験を提供するために利用されます。

●JavaScriptを用いた条件分岐の基本

JavaScriptを使用した条件分岐は、ウェブ開発において非常に重要な概念です。

条件分岐をマスターすることで、ユーザーの行動や特定の条件に基づいてウェブページの内容を動的に変更することが可能となります。

これにより、ユーザーエクスペリエンスが向上し、より対話的なウェブサイトを構築できます。

ここでは、JavaScriptの基本的な条件分岐文であるif文、else文、else if文、そしてswitch文について詳しく見ていきます。

○サンプルコード1:単純なif文

最も基本的な条件分岐はif文です。

これは指定された条件が真である場合にのみ、特定のコードブロックを実行します。

下記のサンプルでは、ユーザーの年齢が18歳以上であれば「成人」と表示しています。

<script>
  let age = 20;
  if (age >= 18) {
    document.write("成人");
  }
</script>

実行結果としては、年齢が18歳以上の場合、ウェブページ上に「成人」と表示されます。

この単純な例では、条件がtrueの時にのみアクションが取られます。

○サンプルコード2:elseとelse ifを使用した例

if文だけではなく、elseelse ifを使うことでより複雑な条件を扱うことができます。

下記のコードでは、年齢に応じて異なるメッセージを表示しています。

<script>
  let age = 16;
  if (age >= 18) {
    document.write("成人");
  } else {
    document.write("未成年");
  }
</script>

このコードでは、年齢が18歳未満の場合に「未成年」と表示されます。

else文はifの条件がfalseの場合に実行されます。

○サンプルコード3:複数条件の利用方法

複数の条件をチェックする必要がある場合、else ifを使用します。

これにより、複数の異なる条件に基づいて異なるアクションを取ることが可能です。

<script>
  let score = 85;
  if (score >= 90) {
    document.write("非常に良い");
  } else if (score >= 80) {
    document.write("良い");
  } else {
    document.write("改善が必要");
  }
</script>

ここでは、スコアが90以上、80以上、そしてそれ未満で異なるテキストを表示します。

このようにelse ifを用いることで、より詳細な条件分岐が可能となります。

○サンプルコード4:スイッチ文を使用した例

switch文は、特定の値に基づいて多くの条件分岐を行いたい場合に便利です。

この文は複数のcaseを設定でき、それぞれのケースに対するコードを実行します。

<script>
  let today = new Date().getDay();
  switch (today) {
    case 0:
      document.write("日曜日");
      break;
    case 1:
      document.write("月曜日");
      break;
    case 2:
      document.write("火曜日");
      break;
    case 3:
      document.write("水曜日");
      break;
    case 4:
      document.write("木曜日");
      break;
    case 5:
      document.write("金曜日");
      break;
    case 6:
      document.write("土曜日");
      break;
    default:
      document.write("不明な日");
  }
</script>

実行結果としては、現在の曜日に応じて異なるメッセージが表示されます。

switch文は特に値に応じた多くのオプションを扱う場合に役立ちます。

●よくあるエラーと対処法

プログラミング、特にWeb開発においては、エラーは避けられない要素です。

JavaScriptを用いた開発では特に、構文エラーやロジックエラーが一般的に発生します。

これらのエラーを理解し、適切に対処することは、効率的な開発プロセスに不可欠です。

ここでは、JavaScriptにおけるよくあるエラーの種類と、トラブルシューティング方法について詳しく見ていきます。

○構文エラーの解決方法

構文エラーは、プログラムの文法が正しくないために発生します。

これには、括弧の不一致、タイプミス、コードの構造ミスなどが含まれます。

JavaScriptでは、このようなエラーは即座にコンソールに表示されるため、デバッグが比較的容易です。

ここでは、構文エラーを含む簡単なJavaScriptコードを見てみましょう。

この例では、セミコロンが欠けているためにエラーが発生します。

var greeting = "Hello, world"
console.log(greeting)

実行結果は次のようになります。

SyntaxError: missing semicolon before statement

このエラーメッセージが示す通り、"Hello, world"の後にセミコロンが必要です。

JavaScriptでは、ほとんどの場合、行の終わりにセミコロンを置くことで文が終了することを表します。

このエラーを修正するには、単純にセミコロンを追加します。

var greeting = "Hello, world";
console.log(greeting);

○ロジックエラーの識別と修正

ロジックエラーは、プログラムがエラーメッセージを発生させずに実行されるものの、期待される結果を生成しない場合に発生します。

これは、条件分岐の誤り、誤った変数の使用、またはアルゴリズムの誤りによるものです。

ロジックエラーは発見が困難であり、しばしば詳細なデバッグが必要となります。

下記のコードは、ユーザーの年齢に応じて異なるメッセージを表示するものですが、ロジックエラーを含んでいます。

var age = 20;
if (age = 18) {
  console.log("あなたは18歳です");
} else {
  console.log("あなたの年齢は18歳ではありません");
}

実行結果は次のようになります。

あなたは18歳です

この結果は不正確です。

ageは20ですが、条件式が誤って=(代入演算子)を使用しています。

この問題を解決するには、比較演算子==または===を使用する必要があります。

下記の修正されたコードを参照してください。

var age = 20;
if (age === 18) {
  console.log("あなたは18歳です");
} else {
  console.log("あなたの年齢は18歳ではありません");
}

修正後の実行結果は次のようになります。

あなたの年齢は18歳ではありません

これで、コードは正しく年齢を評価し、適切なメッセージを表示するようになります。

エラーの特定と解決には、コードの各部分を慎重に検討し、期待する動作と実際の動作を比較するプロセスが必要です。

●条件分岐の応用例

条件分岐を利用したプログラミング技術は、ウェブページの機能性を大幅に拡張します。

ユーザーの行動や状況に応じて内容をカスタマイズすることで、よりリッチでパーソナライズされたウェブ体験を提供できます。

ここでは、日常的なシナリオで条件分岐をどのように活用できるかについて具体的な例を通じて解説します。

○サンプルコード5:ユーザー入力に基づく動的コンテンツの生成

ユーザーからの入力を基にコンテンツを動的に生成することは、ウェブサイトのインタラクティビティを向上させる基本的な方法です。

下記の例では、ユーザーが年齢を入力し、その入力に基づいて異なるメッセージを表示しています。

<!DOCTYPE html>
<html>
<head>
    <title>ユーザー入力に基づく動的コンテンツ</title>
</head>
<body>
    <script>
        var userAge = prompt("あなたの年齢を入力してください:");
        if (userAge >= 18) {
            document.write("あなたは成人です。");
        } else {
            document.write("あなたは未成年です。");
        }
    </script>
</body>
</html>

実行結果として、ユーザーが年齢を入力すると、その年齢に応じて「あなたは成人です。」または「あなたは未成年です。」というメッセージがウェブページ上に表示されます。

この動的なフィードバックはユーザー体験を高める効果があります。

○サンプルコード6:日時に基づくメッセージの表示変更

日時情報を用いて、ユーザーに適切な挨拶を表示する例です。

時間帯に応じて異なる挨拶を表示することで、訪問者にとってより親しみやすいインターフェースを提供します。

<!DOCTYPE html>
<html>
<head>
    <title>時間に基づく挨拶</title>
</head>
<body>
    <script>
        var now = new Date();
        var hour = now.getHours();
        if (hour < 12) {
            document.write("おはようございます!");
        } else if (hour < 18) {
            document.write("こんにちは!");
        } else {
            document.write("こんばんは!");
        }
    </script>
</body>
</html>

実行結果として、訪れたユーザーの現地時間に応じて、「おはようございます!」「こんにちは!」または「こんばんは!」と表示されます。

これにより、ユーザーにとって時間感覚に適したメッセージが提供されます。

○サンプルコード7:ブラウザの種類に応じた特定のコンテンツの表示

ユーザーが使用しているブラウザに応じて異なるメッセージやアドバイスを提供することも、JavaScriptの条件分岐を利用する一例です。

<!DOCTYPE html>
<html>
<head>
    <title>ブラウザ特定のメッセージ</title>
</head>
<body>
    <script>
        var browser = navigator.userAgent;
        if (browser.indexOf('Chrome') > -1) {
            document.write("Google Chromeをお使いのあなたに最適化されたコンテンツです。");
        } else if (browser.indexOf('Firefox') > -1) {
            document.write("Firefoxユーザー向けの特別な提示があります。");
        } else {
            document.write("お使いのブラウザに最適化された情報を提供します。");
        }
    </script>
</body>
</html>

実行結果として、ブラウザの種類に基づき、特定のメッセージが表示されます。

これにより、ブラウザごとの最適化や特定のユーザーガイドを提供することが可能です。

○サンプルコード8:ログイン状態に基づくナビゲーションの変更

ログイン状態によって、表示するナビゲーションメニューを変更することは、セキュリティとユーザーエクスペリエンスの両方を向上させるために重要です。

下記の例では、ユーザーのログイン状態に応じて異なるオプションを提供します。

<!DOCTYPE html>
<html>
<head>
    <title>ナビゲーションの動的変更</title>
</head>
<body>
    <script>
        var isLoggedIn = true;  // 実際の環境ではサーバーからの応答に基づく
        if (isLoggedIn) {
            document.write("<a href='/logout'>ログアウト</a>");
        } else {
            document.write("<a href='/login'>ログイン</a>");
        }
    </script>
</body>
</html>

実行結果として、ログインしている状態では「ログアウト」のリンクが、そうでない場合は「ログイン」のリンクが表示されます。

これにより、ユーザーが必要なアクションを簡単に取れるようになります。

まとめ

この記事を通じて、HTMLとJavaScriptを利用した条件分岐の基本から応用例まで、さまざまなシナリオでの実装方法を解説しました。

プログラミングはただコードを書くこと以上のものです。それはユーザーのニーズに応え、より良いウェブ体験を提供するための手段です。

皆さんがこの知識を実際の開発に生かして、創造的かつ効果的なウェブサイトを作成できることを願っています。