Search code examples
javascriptdhtml

Replacing all children of an HTMLElement?


In my code, I fairly frequently need to replace all children of a certain HTML container with a new list of children.

What is the fastest way to do this? My current approach is collecting all new elements into a DocumentFragment. The only way I've found to then actually replace the children is to remove all the children one by one, and append the fragment. Is there no faster way?

Note: the solution needs not be cross-browser, but should preferably not require 3d-party components such as jQuery. The target-device is WebKit on a very slow CPU so I need to keep full control of any reflows.


Solution

  • If you simply want to replace all children, regarding of the type, why don't you just set its content to '' and then add your code:

    container.innerHTML = '';
    container.appendChild( newContainerElements );
    

    that would basically remove all the children in the fastest possible way :)