HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOM Navオブジェクトとは?動的にナビゲーションバーを生成する方法を解説

HTML DOM Navオブジェクトとは

HTML DOM Navオブジェクトは、HTMLドキュメント内の<nav>要素を表すオブジェクトです。<nav>要素は、ページ内の主要なナビゲーションリンクをまとめるために使われるHTML5のセマンティック要素であり、JavaScriptからはdocument.createElement("NAV")で動的に生成したり、既存の要素にアクセスして操作したりすることができます。

ここでは、ユーザーが入力したリンク名をもとに、ナビゲーションバーを動的に作成する実装例を紹介します。

実装例

以下のサンプルコードでは、テキスト入力欄にリンク名を入力してボタンをクリックすると、<nav>要素と<a>要素が生成され、ナビゲーションバーとして画面に追加されます。

<!DOCTYPE html>
<html>
<head>
<title>HTML DOM Nav</title>
<style>
   * {
      padding: 2px;
      margin:5px;
   }
      form {
      width:70%;
      margin: 0 auto;
      text-align: center;
   }
   input[type="button"] {
      border-radius: 10px;
   }
</style>
</head>
<body>
   <form>
      <fieldset>
         <legend>HTML-DOM-Nav</legend>
         <div id="navbar"></div>
         <input type="text" id="textSelect" placeholder="link name...">
         <input type="button" value="Create Nav Bar" onclick="createNAV()">
         <div id="divDisplay"></div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var textSelect = document.getElementById("textSelect");
   var navDiv = document.getElementById("navbar");
   function createNAV() {
      if(textSelect.value !== ''){
         textSelect.disabled = true;
         var navObject = document.createElement("NAV");
         navDiv.appendChild(navObject);
         var aElement = document.createElement("A");
         aElement.setAttribute("href", "#");
         var textNode = document.createTextNode(textSelect.value);
         aElement.appendChild(textNode);
         navObject.appendChild(aElement);
    }
   else
   divDisplay.textContent = 'Please Provide a link name';
   }
</script>
</body>
</html>

コードの解説

このサンプルの処理の流れは以下のとおりです。

1. 入力値のチェック:createNAV()関数は、まずテキスト入力欄(textSelect)の値が空でないかを判定します。空の場合は「Please Provide a link name(リンク名を入力してください)」というメッセージを表示します。

2. NAV要素の生成:document.createElement("NAV")によって新しい<nav>要素を作成し、id="navbar"のdiv要素に追加します。

3. リンクの追加:続いて<a>要素を生成し、setAttribute()でhref属性に「#」を設定します。入力されたリンク名をcreateTextNode()でテキストノード化し、<a>要素の子ノードとして追加します。

4. 入力欄の無効化:ナビゲーションバー作成後は、重複した操作を防ぐためtextSelect.disabled = trueで入力欄を無効化しています。

出力結果

入力欄が空の状態で「Create Nav Bar」ボタンをクリックした場合 −

HTML DOM Navオブジェクトとは?動的にナビゲーションバーを生成する方法を解説

入力欄に値が入力された状態で「Create Nav Bar」ボタンをクリックした場合 −

HTML DOM Navオブジェクトとは?動的にナビゲーションバーを生成する方法を解説

このように、HTML DOM Navオブジェクトを活用すれば、JavaScriptだけでナビゲーションメニューを動的に構築できます。ユーザーの操作に応じて柔軟にUIを生成したい場合に役立つテクニックです。


  1. HTML DOM HRオブジェクトとは?作成方法と使い方を解説

    HTML DOM の HR オブジェクトは、HTML 文書内の <hr> 要素を表すオブジェクトです。<hr> 要素は、コンテンツの話題やテーマの区切りを視覚的に示す水平線(罫線)として表示されます。JavaScript を使えば、この水平線を動的に生成してページに挿入することも可能です。ここでは、HR オブジェクトの基本的な作成方法と実践的な使用例を紹介します。HRオブジェクトの作成方法(構文)hr オブジェクトを新しく作成するには、document.createElement() メソッドを使用します。構文は以下のとおりです。document.createEleme

  2. HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説

    HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注