Javascript 将节点列表转换回HTML
我正在使用,它在浏览器中将docx转换为html5。函数Javascript 将节点列表转换回HTML,javascript,html,docx,Javascript,Html,Docx,我正在使用,它在浏览器中将docx转换为html5。函数convertContent输出一个NodeList。问题是我需要一个HTML/XML字符串,而不是节点列表 有没有办法将节点列表转换回HTML?有很多例子可以使用另一种方法或将其转换为数组,但没有一个例子说明如何将其转换回HTML。我对你的问题有点不清楚(特别是我需要HTML5) 若您想要字符串表示,这将为列表中的每个节点创建一个html字符串 var html = Array.prototype.reduce.call(nodes, f
convertContent
输出一个NodeList
。问题是我需要一个HTML/XML字符串,而不是节点列表
有没有办法将节点列表
转换回HTML?有很多例子可以使用另一种方法或将其转换为数组,但没有一个例子说明如何将其转换回HTML。我对你的问题有点不清楚(特别是我需要HTML5
)
若您想要字符串表示,这将为列表中的每个节点创建一个html字符串
var html = Array.prototype.reduce.call(nodes, function(html, node) {
return html + ( node.outerHTML || node.nodeValue );
}, "");
更新:修复显示为未定义的文本节点
尝试将其放置在此站点的控制台中
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字符串,而不是一个数组。由于它不在NodeList原型中,我使用.call
来迭代节点列表,就像它是一个数组一样。您可以使用for()
循环编写相同的内容,但这样做就不那么优雅了