我正在使用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