JavaScript查找所有文本节点并以字符串形式返回

JavaScript查找所有文本节点并以字符串形式返回,javascript,textnode,Javascript,Textnode,我需要定义一个名为getText()的函数,用于查找指定节点上或下的所有文本节点,然后提取并连接节点的文本内容,并将其作为单个JavaScript字符串返回。在getText()中,它将是一个调用 我的身体内容将是: <body onload="getText()"> <div id="divText"> <h4>This is a heading!</h4> <p>This is a paragraph.</p> <

我需要定义一个名为getText()的函数,用于查找指定节点上或下的所有文本节点,然后提取并连接节点的文本内容,并将其作为单个JavaScript字符串返回。在getText()中,它将是一个调用

我的身体内容将是:

<body onload="getText()">
<div id="divText">
<h4>This is a heading!</h4>
<p>This is a paragraph.</p>
<p>And this is another paragraph.</p>
</div>
</body>

这是一个标题!
这是一段

这是另一段


在较新的浏览器中,您可以使用它

alert(document.getElementById('divText').textContent);
在较旧的浏览器中,您需要使用
.childNodes
遍历DOM,并测试节点是否具有
节点类型===3
(然后是文本节点)或
节点类型===1
(这也是需要递归遍历的元素)


当您需要过滤只有空格的节点时,例如标记之间的换行符,您还需要最后一个解决方案。

您反对使用jQuery吗?($('body').text()可能会解决您的问题,如果您做

干杯,尽管这看起来像是作弊,因为我们在uni被认为是较旧的JavaScript。我们正在使用元素和.childnodes等,只是这是大学工作的一个可选练习。我可以调试一些JavaScript和jQuery,但我自己从来没有真正编写过任何东西