Javascript DOM,获取节点文本而不会丢失间距信息

时间:2012-03-08 14:32:12

标签: javascript dom

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

假设我有两个文档:

<html>XXX<p>YY    YY</p><html>

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

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

text = node.nodeValue;

然后两个节点的文本将有3个空格。我不再知道哪一个有“真正的”空间。我可以将node.innerHTML用于p元素,这将显示nbsp,但我不认为我可以使用innerHTML来获取XXX文本(没有某种文本减法)。

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

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

所以,我将遍历每个节点。此外,innerHTML按原样显示源,而遍历节点“修复”html错误,添加结束标记等。这是一件好事,我想保留。

1 个答案:

答案 0 :(得分:1)

如果您使用charCode进行测试怎么办?我认为常规空间为32,而&nbsp;160