Taken from the MDN-site :
innerHTML
- The
Element.innerHTMLproperty sets or gets the HTML syntax describing the element's descendants.
Note: If a
<div>,<span>,or<noembed>node has a child text node that includes the characters(&), (<),or(>),innerHTMLreturns these characters as &, < and > respectively. UseNode.textContentto get a correct copy of these text nodes' contents.
outerHTML
The outerHTML attribute of the element DOM interface gets the serialized HTML fragment describing the element including its descendants. It can be set to replace the element with nodes parsed from the given string.
innerHTML vs. outerHTML :
Use innerHTML as default. This replaces only the content (if using i.e. "=") inside the current element refferedreferred to. If you are using outerHTML, then the element refferedreferred to will also be replaced.
Demo:
var h20 = document.getElementById("h20"),
h21 = document.getElementById("h21");
var ran = false;
console.log("'h20' innerHTML (1) =", "'" + h20.innerHTML + "'", "outerHTML (1) =", "'" + h20.outerHTML + "'");
console.log("'h21' innerHTML (1) =", "'" + h21.innerHTML + "'", "outerHTML (1) =", "'" + h21.outerHTML + "'");
document.getElementById("button").onclick = evt => {
if (ran) return false;
h20.innerHTML = "<div>innerHTML</div>";
h21.outerHTML = "<div>outerHTML</div>";
console.log("'h20' innerHTML (2) =", "'" + h20.innerHTML + "'", "outerHTML (2) =", "'" + h20.outerHTML + "'");
console.log("'h21' innerHTML (2) =", "'" + h21.innerHTML + "'", "outerHTML (2) =", "'" + h21.outerHTML + "'");
ran = true
}
<button id="button">innerHTML vs. outerHTML</button>
<br>
<h2 id="h20"></h2>
<h2 id="h21"></h2>