谁能回答我,如何正确设置元素的outerHTML使用cheerio。我对此有意见。
示例:假设我下面有一个HTML结构
<div class="page-info">
<span>Here is an example #1</span>
</div>
<div class="page-info">
<span>Here is an example #2</span>
</div>通过cheerio解析并添加一些操作
const cheerio = require('cheerio');
const $ = cheerio.load(`above HTML is here`);
let elemList = $('.page-info');
for (const elem of elemList) {
let innerHtml = $(elem).html(); //<span>Here is an example #1</span>
let outerHtml = $.html(elem); //<div class="page-info"><span>Here is an example #1</span></div>
let replacedHtml = '<p>totally new html structure</p>';
$(elem).html(replacedHtml);
}因此,我希望所有的div都被p替换,但是只有spans被p替换,我想得到结果:
<p>totally new html structure</p>
<p>totally new html structure</p>但下一个
<div class="page-info">
<p>totally new html structure</p>
</div>
<div class="page-info">
<p>totally new html structure</p>
</div>我是不是遗漏了什么在文件里给啦啦队?请指出我做错了什么地方。
你好,奥利
发布于 2021-02-25 13:01:54
使用replaceWith (用内容替换匹配的元素)替换节点:
$(".page-info").replaceWith("<p>totally new html structure</p>");使用each
let elemList = $(".page-info");
elemList.each((i, elem)=> {
$(elem).replaceWith("<p>totally new html structure</p>")
})https://stackoverflow.com/questions/66368408
复制相似问题