【问题标题】:Adding a string every time $() selects something每次 $() 选择某些东西时添加一个字符串
【发布时间】:2020-05-15 21:14:19
【问题描述】:

我在this Italian betting site 上使用 puppeteer 进行网络抓取,我想选择包含两个团队名称的 div,成为游戏的一部分。所以我这样做了:

let matches = $('span.AvvenimentoDescription-rieyuj-0').text();
console.log(matches)

它返回给我这个:

'Bologna - BresciaCagliari - ParmaSassuolo - RomaJuventus - FiorentinaAtalanta - GenoaLazio - SpalMilan - Hellas VeronaLecce - TorinoUdinese - InterSampdoria - Napoli'

如您所见,匹配项彼此相邻:

'Bologna - BresciaCagliari - Parma...'

我希望它是:

'Bologna - Brescia Cagliari - Parma...'

甚至更好

`'Bologna - Brescia,Cagliari - Parma...`

那么,有没有办法在每次 $() 选择某些东西时添加空格或逗号?

【问题讨论】:

    标签: javascript jquery html node.js web-scraping


    【解决方案1】:

    问题在于,当您在针对多个元素的 jQuery 对象上调用 text() 时,jQuery 会自动连接它们的值,因此值之间没有空格。

    解决这个问题的更好方法是使用map() 创建一个值数组。然后你可以join()这个数组以你需要的任何格式形成一个字符串。这是一个用逗号分隔值的示例:

    let matches = $('span.AvvenimentoDescription-rieyuj-0').map((i, el) => el.textContent.trim()).get();
    let output = matches.join(', ');
    console.log(output);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2010-09-12
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多