我正在使用JavaScript并希望遍历HTML树,获取所有文本,因为它显示给用户。但是,我正在失去空间信息。Javascript DOM,获取节点文本而不会丢失间距信息
比方说,我有两个文件:
<html>XXX<p>YY YY</p><html>
<html>XXX<p>YY YY</p><html>
第一个会出现在伊苏1米之间的空间。第二个将有3个空格。但是,如果我遍历树,并为每个#text节点,使用:
text = node.nodeValue;
然后两个节点的文本将有3位。我不知道哪一个具有“真正的”nbsp空格。我可以使用node.innerHTML作为p元素,它将显示nbsp,但我不认为我可以使用innerHTML来获取XXX文本(没有某种文本减法)。
我可以得到整个文档的innerHTML并解析它。不过,我也需要得到各元素,我将开始使用
window.getComputedStyle(theElement).getPropertyValue("text-align");
这样的计算的风格,我会遍历每个节点。此外,innerHTML显示源代码,而遍历节点“修复”的HTML错误,添加结束标签等,这是一件好事,我想保留。
有趣的问题。你能显示你当前的遍历代码吗? – 2012-03-08 14:44:20
我创建了一个递归调用的函数。该函数获取元素的nodeName,如果它是#text元素,则获取nodeValue。对于每个子元素(element.childNodes),它会调用该函数,返回名称和值信息。 – user984003 2012-03-08 14:50:54