Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Web Technology by (7k points)

I need a way to append HTML to a container element without using innerHTML. The reason why I do not want to use innerHTML is that when it is used like this:
 

element.innerHTML += htmldata

It works by replacing all of the HTML first before adding the old HTML plus new HTML. This is not good because it resets dynamic media such as embedded flash videos.

I could do it this way:

var e = document.createElement('span');

e.innerHTML = htmldata;

element.appendChild(e);

However, the problem with that way is that there is an extra span tag in the document now that I do not want.

Can someone help me with this?

1 Answer

0 votes
by (13.1k points)

To give an alternative you can simulate it by iterating over the children of the newly generated node and only append those.

var e = document.createElement('div');

e.innerHTML = htmldata;

while(e.firstChild) {

    element.appendChild(e.firstChild);

}

Want to learn Full Stack Devlopment? Check out the Full Stack Developer course from Intellipaat.

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...