【问题标题】:Convert NodeList BACK to HTML将 NodeList BACK 转换为 HTML
【发布时间】:2014-03-14 14:28:10
【问题描述】:

我正在使用docx.js,它在浏览器中将 docx 转换为 html5。函数convertContent 输出NodeList。问题是我需要一个 HTML/XML 字符串,而不是 NodeList

有没有办法将NodeList 转换回 HTML?有很多其他方式或将其转换为数组的示例,但没有关于如何将其转换回 HTML 的示例。

【问题讨论】:

    标签: javascript html docx


    【解决方案1】:

    我对你的问题有点不清楚(特别是I need 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 字符串,而不是一个数组。
    • 我只是在使用Array.prototype.reduce。由于它不在 NodeList 原型上,我使用 .call 来迭代节点列表,就好像它是一个数组一样。您可以使用 for() 循环编写相同的内容,但不会那么优雅
    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2014-09-12
    • 1970-01-01
    • 2012-05-05
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    相关资源
    最近更新 更多