Do not use regular expressions or any other type of text replacement for this. DOM is a tree. Consider it as such and do not be afraid of it. This is by far the safest and least brutal way to deal with such things.
function removeElements(container) { var elements = container.getElementsByTagName("*"); // Make an array of the strongs and ems var strongsAndEms = []; for (var i = 0, len = elements.length; i < len; ++i) { if (/^(strong|em)$/i.test(elements[i].tagName)) { strongsAndEms.push(elements[i]); } } // Remove the strongs and ems for (var j = 0, el, child; el = strongsAndEms[j++]; ) { while ( (child = el.firstChild) ) { el.parentNode.insertBefore(child, el); } el.parentNode.removeChild(el); } } var div = document.getElementById("foo"); removeElements(div);
source share