Один из способов сделать это - получить все элементы в теле, итерировать по ним, чтобы получить их текстовое содержимое. С jQuery это будет выглядеть примерно так:
$(document).ready(function() {
let content = []
$('body * :not(script)').each((i, el) => {
content.push($(el).text())
})
console.log(content)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<aside>
<h1>JS Documentation</h1>
<ul>
<li>Introduction</li>
<li>What you should already know</li>
</ul>
</aside>
<main>
<h2>Introduction</h2>
<p>JavaScript is a cross platform...</p>
</main>
Примечание : селектор :not(script)
пропустит любые теги <script>
(если имеются) в <body>
document.
Подсказка : если вам нужно избавиться от пробелов, вы можете использовать что-то вроде этого:
text().trim().replace(/\r?\n|\r/g, '')