code: function parse(elementOrHtml, rules, context, cleanUp) {
      wysihtml5.lang.object(currentRules).merge(defaultRules).merge(rules).get();
      
      context           = context || elementOrHtml.ownerDocument || document;
      var fragment      = context.createDocumentFragment(),
          isString      = typeof(elementOrHtml) === "string",
          element,
          newNode,
          firstChild;
      
      if (isString) {
        element = wysihtml5.dom.getAsDom(elementOrHtml, context);
      } else {
        element = elementOrHtml;
      }
      
      while (element.firstChild) {
        firstChild  = element.firstChild;
        element.removeChild(firstChild);
        newNode = _convert(firstChild, cleanUp);
        if (newNode) {
          fragment.appendChild(newNode);
        }
      }
      
      // Clear element contents
      element.innerHTML = "";
      
      // Insert new DOM tree
      element.appendChild(fragment);
      
      return isString ? wysihtml5.quirks.getCorrectInnerHTML(element) : element;
    }
docs: Iterates over all childs of the element, recreates them, appends them into a document fragment
  which later replaces the entire body content