JSFiddle - React, Tailwind, and code Playground

by marlberm2014

HTML

<div id="holder">
    a
    <h1>Heading!</h1>
    bb
    <div id = "stuff">Hi!</div>
    ccc
</div>

JavaScript

function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent||tmp.innerText;
}
function getHTML(who, deep){
    if(!who || !who.tagName) return '';
    var txt, ax, el= document.createElement("div");
    el.appendChild(who.cloneNode(false));
    txt= el.innerHTML;
    if(deep){
        ax = txt.indexOf('>')+1;
        //console.log("ax: " + ax + " " + who.innerHTML);
        txt = txt.substring(0, ax)+who.innerHTML+ txt.substring(ax);
        
    }
    el= null;
    return txt;
}


var str = document.getElementById("holder");
str = getHTML(str, true);
console.log(str);
//strip(document.body.innerHTML);
var i = 0;
var end = 0;
var limit = 0;
while(i < str.length && end < str.length){
    i = str.search(/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi);
    if(i >= 0){
        //var tst = str.substring(i);
        end = str.indexOf('>') + 1;
        var tag = str.substring(i, end);
        tag = tag.replace(/./g, ' ');
        str = str.substring(0, i) + tag + str.substring(end);
    }
    limit++;
    if(limit > 100) break;
}
console.log(str);
//console.log(str.search(/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi));