如何克隆cheerio对象

时间:2019-03-14 22:16:41

标签: cheerio

我有一个cheerio对象:

const $ = cheerio.load('<span class="layer-chunk"></span>')

这是一个简单的示例,它要复杂得多。

我需要克隆它,以便我可以用它做不同的事情而实际上不影响它。

这是到目前为止我得到的:

const clone = $ => {
  const strHtml = $('body').html()
  return cheerio.load(strHtml)
}
const myClone = clone($)

但是我确信这不是一个便宜的操作。有一个clone method in the docs,但我无法使用它。我已经尝试过了:

const myClone = $.root().clone()

但是没有雪茄。有谁知道克隆cheerio对象的最佳实践?谢谢

3 个答案:

答案 0 :(得分:1)

您总是可以这样做:

cheerio.load($.html())

答案 1 :(得分:1)

我认为,要实际使用克隆,您必须这样做:

cheerio('.layer-chunk', clone).text('something')
                        ^^^^^

答案 2 :(得分:1)

documentation所示,您要做的就是

const $ = cheerio.load('<div id="fruits">This is <em>content</em>.</div>')
const moreFruit = $('#fruits').clone()

或者您可以在此link

上检查cloneDom
  

通过首先将其呈现为给定的DOM结构来创建其深层副本   *字符串,然后解析结果标记。

谢谢

相关问题