Steven Matthews
Steven Matthews

Reputation: 11285

HTML is coming out as plaintext

I am trying to add some text to an element, however it is all coming out as plaintext, even when there is an HTML element included.

for (i = 0; i < restext.length; i++) {
    var p = document.createElement("p");
    p.innerHTML = "<p>" + restext[i].innerHTML + "</p>";
    document.getElementById("registererrors").appendChild(p);
}

However with this, it prints out the tag:

The name <em class="placeholder">name</em is already taken.

How do I make it so that it processes this tag too?

Upvotes: 0

Views: 76

Answers (1)

Vyacheslav Pukhanov
Vyacheslav Pukhanov

Reputation: 1928

Change

p.innerHTML = "<p>" + restext[i].innerHTML + "</p>";

to

p.innerHTML = restext[i].innerHTML;

The problem is that after you create p element with document.createElement you add <p></p> inside of it. And inside of the inner p tag you insert other HTML code, which automatically gets escaped.

Upvotes: 1

Related Questions