【问题标题】:How to replace domain name for all "a" tag using cheerio?如何使用cheerio替换所有“a”标签的域名?
【发布时间】:2021-06-25 00:03:27
【问题描述】:

我试图弄清楚如何使用cheerio 替换所有“a”标签的域名,但$(this).attr("href") 返回未定义

function changeDomain(html) {
  const $ = cheerio.load(html);
  $("a").each((_, node) => {
    console.log($(this).attr("href")); // undefined
  });
  return $.html();
}

我想改变

从这里

 <a href="HTTP://google.com/home">Home</a>

到这里

 <a href="HTTP://example.com/home">Home</a>

【问题讨论】:

  • 确保文档准备就绪后正在运行changeDomain

标签: javascript node.js cheerio


【解决方案1】:
for(let a of $('a').get()){
  $(a).attr('href', $(a).attr('href').replace(/old/, 'new'))
}

【讨论】:

    【解决方案2】:

    因为你使用的是arrow function,他们没有得到this

    改用$(node)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 2019-03-03
      相关资源
      最近更新 更多