1
我使用的是docx.js,它將docx轉換爲瀏覽器中的html5。功能convertContent
輸出NodeList
。問題是我需要一個HTML/XML字符串,而不是NodeList
。將NodeList轉換爲HTML
有什麼辦法可以將NodeList
轉換回HTML嗎?有很多其他方式或將其轉換爲數組的示例,但沒有關於如何將其轉換回HTML的示例。
我使用的是docx.js,它將docx轉換爲瀏覽器中的html5。功能convertContent
輸出NodeList
。問題是我需要一個HTML/XML字符串,而不是NodeList
。將NodeList轉換爲HTML
有什麼辦法可以將NodeList
轉換回HTML嗎?有很多其他方式或將其轉換爲數組的示例,但沒有關於如何將其轉換回HTML的示例。
我對你的問題(特別是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);
非常感謝您的回答!我無法找到Array.prototype.reduce.call的任何文檔。一旦迭代完成,我如何從函數中獲取最終的輸出(我假設它迭代了)。我也更新了我的問題(希望)更清楚。我的意思是我需要一個HTML/XML字符串,而不是一個數組。 –
我只是使用[Array.prototype.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)。由於它不在NodeList原型上,我使用'.call'來迭代節點列表,就好像它是一個數組。你可以使用'for()'循環寫同樣的東西,但不會那麼優雅 – megawac