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

时间:2012-10-23 14:47:04

标签: javascript textnode

我需要定义一个名为getText()的函数,它找到指定节点上或下面的所有Text节点,然后提取并连接节点的文本内容并将其作为单个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>

2 个答案:

答案 0 :(得分:2)

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

alert(document.getElementById('divText').textContent);

在旧版浏览器中,您需要使用.childNodes遍历DOM并测试,如果某个节点有nodeType === 3(那么它是文本节点)或nodeType === 1(它是您需要的元素)递归地遍历)。

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

答案 1 :(得分:0)

你对使用jQuery不利吗? ($('body')。text())如果你这样做可以解决你的问题