Javascript DOM,在不丢失间距信息的情况下获取节点文本

Javascript DOM, get node text without losing spacing info

本文关键字:信息 情况下 获取 文本 节点 DOM Javascript      更新时间:2023-09-26

我正在使用javascript,并希望遍历HTML树,获得用户看到的所有文本。但是,我正在丢失间距信息。

假设我有两个文档:

<html>XXX<p>YY    YY</p><html>
<html>XXX<p>YY&nbsp;&nbsp;&nbsp;YY</p><html>

第一个将出现,Y之间有1个空格。第二个将有3个空格。但是,如果我遍历树,并且对于每个#文本节点,使用:

text = node.nodeValue;

则两个节点的文本将具有3个空格。我再也不知道哪一个有"真正的"nbsp空格了。我可以对p元素使用node.innerHTML,它将显示nbsp,但我不认为我可以使用innerHTML只获得XXX文本(不需要某种文本减法)。

我可以获取整个文档的innerHTML并解析它。然而,我还需要获得每个元素的计算样式,我将使用获得

window.getComputedStyle(theElement).getPropertyValue("text-align");

因此,我将遍历每个节点。此外,innerHTML按原样显示源代码,同时遍历节点"修复"html错误,添加结束标记等。这是一件好事,也是我想保留的东西。

如果使用charCode进行测试会怎样?我相信一个正则空间是32,而&nbsp;160

相关文章: