2014-02-15 54 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