【问题标题】:How to turn Cheerio DOM nodes back into html?如何将 Cheerio DOM 节点转回 html?
【发布时间】:2016-06-11 18:43:40
【问题描述】:

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

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

<article>
    <p> p1 </p>
    <p> p2 </p>
</article>

html是这样加载的

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

如何获取这些段落的 HTML?

注意:为清楚起见,我将cheerio.load 的返回值称为“查询对象”,并称toArray 方法DOM 节点的返回;因为没有更好的短语。

【问题讨论】:

  • Element.outerHTML?
  • 'outerHTML' 不是节点的属性。在它出现之前,是的,我有最新版本的 Cheerio:P
  • outerHTML 是 DOM 元素的标准属性。
  • 你说得对。这是!但我在问如何为此使用 Cheerio。我可以用 JSDOM 做到这一点。

标签: javascript jquery html cheerio


【解决方案1】:

你可以使用$.html:

var paragraphs = $('p').toArray().map(p => {
    console.log($.html(p));
    return $.html(p);
});

documentation 显示了一个使用选择器的示例,但是cheerio DOM 元素也可以按预期工作:

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

$.html('.pear') //=&gt; &lt;li class="pear"&gt;Pear&lt;/li&gt;

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 2019-03-11
    • 2013-12-19
    • 2020-05-07
    • 2013-03-27
    • 2016-01-13
    • 1970-01-01
    • 2020-02-26
    • 2017-09-18
    相关资源
    最近更新 更多