JavaScriptがinsertAfterソリューションに欠けています。


既存の方法の後に新しい要素を挿入すると、insertBeforeの方法がある以上、対応するinsertAfter()の方法もあるのではないかと思うかもしれません。残念ながら、DOMは方法を提供していません。
以下でinsertAfter関数を作成します。DOM自体は提供していませんが、一つのノードを別のノードに挿入した後、すべてのツールを提供しています。既存のDOM方法と属性を利用してinsertAfter関数を作成することができます。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
既存の方法の後に新しい要素を挿入すると、insertBeforeの方法がある以上、対応するinsertAfter()の方法もあるのではないかと思うかもしれません。残念ながら、DOMは方法を提供していません。以下でinsertAfter関数を作成します。DOM自体は提供していませんが、一つのノードを別のノードに挿入した後、すべてのツールを提供しています。既存のDOM方法と属性を利用してinsertAfter関数を作成することができます。

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>
<script>
  function insertAfter(newElement,targetElement){
    var parent = targetElement.parentNode;
    if(parent.lastChild == targetElement){
      parent.appendChild(newElement);
    }else{
      parent.insertBefore(newElement,targetElement.nextSibling);
    }
  }
  var p = document.createElement('p');
  var txt = document.createTextNode('        ');
  p.appendChild(txt);


  var lis = document.getElementsByTagName('li');

  //insertAfter(p,lis[0])
</script>
</body>
</html>

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。