编辑jsdom窗口中的元素并将窗口另存为新的HTML文件?

时间:2015-05-08 09:28:00

标签: javascript jquery html node.js jsdom

我想加载一个HTML文件(使用fs.read),使用jsdom加载DOM,然后更改正文节点的文本(通过jquery)。然后我想将编辑后的DOM窗口保存为HTML文件。有没有办法做到这一点?我正在使用的代码如下:

fs.readFile(file, 'utf8', function(error, data) {
    jsdom.env(data, [], function (errors, window) {
        var $ = require('jquery')(window);
        $(document.body.getElementsByTagName("*")).each(function () {
            var content = $(this).text();
            var word = "\\b"+wordSuggestions.word+"\\b";
            var re = new RegExp(word, "g");
            content = content.replace(re, wordSuggestions.suggestion);
            $(this).text(content);
        });

        fs.writeFile(file, data, function (error){ // saving the new HTML file? What should I put instead of data? Window?
        });
    });
});

1 个答案:

答案 0 :(得分:12)

以下是如何操作的示例。我已将其基于您的代码,但稍微简化了一下,以便我可以执行代码并说明如何执行此操作。以下代码为byte[] result = nfcA.transceive(new byte[] { (byte)0xA2, /* CMD = WRITE */ (byte)0x28, /* PAGE = 40 */ (byte)0xE0, (byte)0x00, (byte)0x00, (byte)0x00 /* DATA = lock pages 28..39 */ }); ,并将文本foo.html添加到所有modified!元素,然后将其写入p。你遗漏的主要内容是out.html

window.document.documentElement.outerHTML