Javascript DOM How to - Add innerHTML before an element








Question

We would like to know how to add innerHTML before an element.

Answer


<!DOCTYPE html>
<html>
<body>
  <div>Before foo</div>
  <div id="foo"></div>
  <div>After foo</div>
  <script>
    setTimeout(function() {<!--from  w  ww .  j  av a 2s .c  o  m-->
      var yourHTMLString = "<span>hello, world</span><div></div>Foo<img src=\"http://www.java2s.com/style/download.png\" />Bar";
      var foo = document.getElementById("foo");
      var parent = foo.parentNode;
      var helper = document.createElement('div');
      helper.innerHTML = yourHTMLString;
      while (helper.firstChild) {
         parent.insertBefore(helper.firstChild, foo);
      }
    }, 500);
  </script>
</body>
</html>

The code above is rendered as follows: