CodeGym /コース /Frontend SELF JA /DOM要素の作成と削除

DOM要素の作成と削除

Frontend SELF JA
レベル 41 , レッスン 2
使用可能

3.1 要素の作成

DOM(Document Object Model)の操作には、既存の要素をナビゲートするだけでなく、新しい要素を作成してドキュメントに挿入したり、削除したりすることも含まれます。ここでは、DOMで要素を作成および削除するためのさまざまなメソッドやアプローチを見ていきます。

メソッド document.createElement()

DOMで新しい要素を作成するための基本的なメソッドはdocument.createElement()です。このメソッドは作成したい要素のタグ名を受け取り、新しい空の要素を返します。

例:

JavaScript
    
      const newDiv = document.createElement('div');
    
  

要素にコンテンツを追加する

新しい要素を作成した後、それにコンテンツを追加することができます。テキストや他の要素、またはその組み合わせを追加できます。

例:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'これは新しい div 要素です';
    
  

また、innerHTMLプロパティを使用してHTMLコンテンツを追加することもできます。

例:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.innerHTML = '<strong>これはボールドテキストを持つ新しい div 要素です</strong>';
    
  

3.2 DOMへの要素の挿入

作成した要素をドキュメントに追加する必要があります。DOMに要素を挿入するためのいくつかのメソッドがあります:

1. メソッド appendChild()

メソッドappendChild()は、指定された親要素の子要素リストの末尾に要素を追加します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>これは古い div 要素です</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'これは新しい div 要素です';

      const body = document.querySelector('body');
      body.appendChild(newDiv);
    
  

2. メソッド insertBefore()

メソッドinsertBefore()は、指定された親要素の子要素の前に要素を追加します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>これは古い div 要素です</div>
          <p>これは段落です</p>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'これは新しい div 要素です';

      const body = document.querySelector('body');
      const referenceElement = document.querySelector('p');
      body.insertBefore(newDiv, referenceElement);
    
  

3. メソッド append()

メソッドappend()は、指定された親要素の子要素リストの末尾に1つ以上のノードまたは文字列を追加します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>これは古い div 要素です</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'これは新しい div 要素です';

      const body = document.querySelector('body');
      body.append(newDiv);
    
  

4. メソッド prepend()

メソッドprepend()は、指定された親要素の子要素リストの最初に1つ以上のノードまたは文字列を追加します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>これは古い div 要素です</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'これは新しい div 要素です';

      const body = document.querySelector('body');
      body.prepend(newDiv);
    
  

3.3 要素のクローン

メソッドcloneNode()は、要素をクローンすることができます。クローンは深い(すべての子要素をコピーする)か浅い(要素そのもののみ)かのどちらかです。

深いクローンの例:

HTML
    
      <html>
        <head>
          <style>
            div {
              padding: 5px;
              min-height: 50px;
              color: #fff;
              border-bottom: 1px solid lightblue;
              background: mediumpurple;
            }
          </style>
          <title>文書</title>
        </head>
        <body>
          <div>
            これは div 要素です
            <ul>
              <li>要素 1</li>
              <li>要素 2</li>
              <li>要素 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(true);

      document.body.appendChild(clonedDiv);
    
  

浅いクローンの例:

HTML
    
      <html>
        <head>
          <style>
            div {
              padding: 5px;
              min-height: 50px;
              color: #fff;
              border-bottom: 1px solid lightblue;
              background: mediumpurple;
            }
          </style>
          <title>文書</title>
        </head>
        <body>
          <div>
            これは div 要素です
            <ul>
              <li>要素 1</li>
              <li>要素 2</li>
              <li>要素 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(false);

      document.body.appendChild(clonedDiv);
    
  

要素<div>自体はクローンされているが、その子要素(テキストノード「これは div 要素です」と<ul>)はクローンされていないことがわかります。

3.4 要素の削除

1. メソッド removeChild()

メソッドremoveChild()は、親要素から子要素を削除します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>
            これは div 要素です
            <p>これは段落です</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      const child = document.querySelector('p');
      parent.removeChild(child);
    
  

2. メソッド remove()

メソッドremove()は、DOMから要素を直接削除します。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
        <body>
          <div>これは div 要素です</div>
          <p>これは段落です</p>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.remove();
    
  

3. 要素の内容をクリア

メソッドinnerHTMLを使用して要素の内容をすべて削除し、それに空の文字列を割り当てることができます。

例:

HTML
    
      <html>
        <head>
          <title>文書</title>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        </head>
        <body>
          <div>
            これは div 要素です
            <p>これは段落です</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.innerHTML = '';
    
  

4. すべての子要素を削除

すべての子要素を削除するには、ループやinnerHTMLメソッドを使用できます。

ループを使った例:

HTML
    
      <html>
        <head>
          <title>文書</title>
        </head>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        <body>
          <div>
            これは div 要素です
            <p>これは段落です</p>
            <p>これは段落です</p>
            <p>これは段落です</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      while (parent.firstChild) {
        parent.removeChild(parent.firstChild);
      }
    
  

innerHTMLを使った例:

HTML
    
      <html>
        <head>
          <title>文書</title>
            <style>
              div {
                min-height: 200px;
                background: bisque;
              }
            </style>
        </head>
        <body>
          <div>
            これは div 要素です
            <p>これは段落です</p>
            <p>これは段落です</p>
            <p>これは段落です</p>
            <ul>
              <li>要素 1</li>
              <li>要素 2</li>
              <li>要素 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      parent.innerHTML = '';
    
  
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION