2014-02-15 52 views
1

我使用的是docx.js,它將docx轉換爲瀏覽器中的html5。功能convertContent輸出NodeList。問題是我需要一個HTML/XML字符串,而不是NodeList將NodeList轉換爲HTML

有什麼辦法可以將NodeList轉換回HTML嗎?有很多其他方式或將其轉換爲數組的示例,但沒有關於如何將其轉換回HTML的示例。

回答

2

我對你的問題(特別是I need HTML5

如果你想字符串表示,這將創建HTML的字符串列表中的每個節點

var html = Array.prototype.reduce.call(nodes, function(html, node) { 
    return html + (node.outerHTML || node.nodeValue); 
}, ""); 

更新有點不清楚:修復textnodes顯示爲未定義

嘗試在這個網站上投放該控制檯

var htmlstr = Array.prototype.reduce.call($("div")[43].childNodes, function(html, node) { 
    return html + (node.outerHTML || node.nodeValue); 
}, ""); 

console.log(htmlstr); 
+0

非常感謝您的回答!我無法找到Array.prototype.reduce.call的任何文檔。一旦迭代完成,我如何從函數中獲取最終的輸出(我假設它迭代了)。我也更新了我的問題(希望)更清楚。我的意思是我需要一個HTML/XML字符串,而不是一個數組。 –

+0

我只是使用[Array.prototype.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)。由於它不在NodeList原型上,我使用'.call'來迭代節點列表,就好像它是一個數組。你可以使用'for()'循環寫同樣的東西,但不會那麼優雅 – megawac