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

HTML DOMのinsertBefore()メソッドの使い方を徹底解説

insertBefore()メソッドとは

HTML DOMのinsertBefore()メソッドは、すでに存在する子ノードの直前に、新しいノードを挿入するためのメソッドです。リストの先頭に項目を追加したい場合など、DOM操作で要素の挿入位置を細かく制御したいときに非常に便利です。

構文

insertBefore()メソッドの基本的な構文は以下の通りです。

node.insertBefore(newNode, existingNode)

パラメータ

このメソッドには、以下の2つのパラメータを指定します。

パラメータ説明
newNode先頭に追加したい、新しく作成した子ノードです
existingNodeすでに存在しているノードです。このノードの直前にnewNodeが挿入されます

使用例

ここでは、insertBefore()メソッドを使って、手順リストの先頭に新しい項目を追加する例を紹介します。「Add」ボタンをクリックすると、「Boil Water(お湯を沸かす)」という手順がリストの最初に挿入されます。

<!DOCTYPE html>
<html>
<head>
<title>insertBefore()</title>
<style>
   form {
      width:70%;
      margin: 0 auto;
      text-align: center;
   }
   * {
      padding: 2px;
      margin:5px;
   }
   input[type="button"] {
      border-radius: 10px;
   }
   ol {
      width:30%;
      margin: 0 auto;
   }
</style>
</head>
<body>
<form>
<fieldset>
<legend>insertBefore( )</legend>
<h1>How to make tea</h1>
<h3>Steps:</h3>
<ol id="stepList">
<li>Add Tea Bag</li>
<li>Add Sugar</li>
<li>Add Milk</li>
</ol>
<input type="button" onclick="addStep()" value="Add">
</fieldset>
</form>
<script>
   function addStep() {
      var newIngredient = document.createElement("LI");
      var textnode = document.createTextNode("Boil Water");
      newIngredient.appendChild(textnode);
      var stepList = document.getElementById("stepList");
      stepList.insertBefore(newIngredient, stepList.childNodes[0]);
   }
</script>
</body>
</html>

コードの解説

このサンプルコードの処理の流れは以下の通りです。

1. document.createElement("LI")で、新しいLI要素を作成します。
2. document.createTextNode("Boil Water")で、挿入するテキストノードを作成します。
3. appendChild()で、テキストノードを新しいLI要素に追加します。
4. insertBefore()で、リストの最初の子ノード(stepList.childNodes[0])の直前に、新しいLI要素を挿入します。

実行結果

このコードを実行すると、以下のような結果が得られます。

「Add」ボタンをクリックする前:

HTML DOMのinsertBefore()メソッドの使い方を徹底解説

「Add」ボタンをクリックした後:

HTML DOMのinsertBefore()メソッドの使い方を徹底解説

ボタンをクリックすると、新しいLI要素がリストの先頭に挿入され、「Boil Water」が最初の手順として表示されていることが確認できます。このように、insertBefore()メソッドを使えば、既存のノードを基準として任意の位置に要素を柔軟に挿入できます。

  1. HTML DOMのhasAttributes()メソッドとは?構文・使い方・サンプルコードを解説

    HTML DOMのhasAttributes()メソッドは、ある要素が属性(attribute)を1つでも持っているかどうかを判定するためのメソッドです。要素が属性を保持している場合はtrueを返し、1つも属性を持っていない場合はfalseを返します。また、このメソッドを要素ノード以外のノードに対して呼び出した場合、戻り値は常にfalseになるという特徴があります。 構文 hasAttributes()メソッドの基本構文は以下のとおりです。 node.hasAttributes() 引数は不要で、対象となるノードに対して直接呼び出すだけで、真偽値(Boolean)が返されます。 使用例 ここで

  2. HTML DOMのfocus()メソッドとは?基本構文と使い方を実例付きで解説

    HTML DOMのfocus()メソッドは、指定したHTML要素にフォーカスを設定するために使用されるメソッドです。ただし、すべてのHTML要素にフォーカスを適用できるわけではありません。たとえば、<p>タグのようにフォーカスを受け付けない要素も存在します。また、要素からフォーカスを解除したい場合は、blur()メソッドを使用します。 focus()メソッドの主な活用シーン ページ読み込み時やフォーム表示時に、最初の入力欄へ自動的にカーソルを合わせる バリデーションエラーが発生した際に、該当する入力フィールドへフォーカスを移動する モーダルウィンドウを開いたときに、特定のボタンや