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));