如何将Cheerio DOM节点变回html?

Aag*_*eif 4 html javascript jquery cheerio

使用下面的HTML,我试图提取每个段落的html.但是,我找不到任何方法将节点转回HTML或查询对象.

以下是一个字符串 var html = ...

<article>
    <p> p1 </p>
    <p> p2 </p>
</article>
Run Code Online (Sandbox Code Playgroud)

html就这样加载了

var $ = require('cheerio').load(html)
var paragraphs = $('p').toArray().map(p => /* I want the html at this point */ )
Run Code Online (Sandbox Code Playgroud)

如何获取这些段落的HTML?

注意:为清楚起见,我调用cheerio.load"查询对象" 的返回值并返回toArray方法DOM节点; 缺乏一个更好的短语.

luc*_*son 6

你可以使用$.html:

var paragraphs = $('p').toArray().map(p => {
    console.log($.html(p));
    return $.html(p);
});
Run Code Online (Sandbox Code Playgroud)

所述文档示出了示例使用选择,然而cheerio DOM元素也按预期方式工作:

如果要返回outerHTML,可以使用$ .html(selector):

$.html('.pear') //=> <li class="pear">Pear</li>