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