WIP: Note editing, markdown to html
[oweals/karmaworld.git] / karmaworld / apps / wysihtml5 / static / wysihtml5 / wysihtml-0.4.17 / src / dom / rename_element.js
1 /**
2  * Renames an element (eg. a <div> to a <p>) and keeps its childs
3  *
4  * @param {Element} element The list element which should be renamed
5  * @param {Element} newNodeName The desired tag name
6  *
7  * @example
8  *    <!-- Assume the following dom: -->
9  *    <ul id="list">
10  *      <li>eminem</li>
11  *      <li>dr. dre</li>
12  *      <li>50 Cent</li>
13  *    </ul>
14  *
15  *    <script>
16  *      wysihtml5.dom.renameElement(document.getElementById("list"), "ol");
17  *    </script>
18  *
19  *    <!-- Will result in: -->
20  *    <ol>
21  *      <li>eminem</li>
22  *      <li>dr. dre</li>
23  *      <li>50 Cent</li>
24  *    </ol>
25  */
26 wysihtml5.dom.renameElement = function(element, newNodeName) {
27   var newElement = element.ownerDocument.createElement(newNodeName),
28       firstChild;
29   while (firstChild = element.firstChild) {
30     newElement.appendChild(firstChild);
31   }
32   wysihtml5.dom.copyAttributes(["align", "className"]).from(element).to(newElement);
33   element.parentNode.replaceChild(newElement, element);
34   return newElement;
35 };