JSFiddle - React, Tailwind, and code Playground
HTML
<h1>Header</h1><p>Paragraph</p><ul><li>First</li><li>Second</li></ul><dl><dt>Term</dt> <dd>Definition</dd></dl><div>Div with <span>span</span>.<br />After the <a href="...">break</a>.</div>
JavaScript
function getText(n) {
var rv = '';
if (n.nodeType == 3) {
rv = n.nodeValue;
} else {
for (var i = 0; i < n.childNodes.length; i++) {
rv += getText(n.childNodes[i]);
}
var d = getComputedStyle(n).getPropertyValue('display');
if (d.match(/^block/) || d.match(/list/) || n.tagName == 'BR') {
rv += "\n";
}
}
return rv;
}; // getText()
alert(getText(document.body));