jquery - 获取多个元素的文本作为单独的值

标签 jquery node.js web-scraping web-crawler cheerio

我正在尝试从 WEB 收集信息,但如果一页中有 2 个元素,则信息存储在同一 obj 行中。如何在不同的行中存储信息? 代码:

if (!error && response.statusCode == 200) {
  var $ = cheerio.load(html);
  $('#ctl00_MainContent_ipcAvaDay_upnlResultOutbound').each((e, el) => {
    var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').text();
    var alio = [arrival_airport];

我得到的console.log是

[RigaRiga] 

而不是

[Riga]
[Riga]

也许有一些想法?

最佳答案

当对元素集合调用 text() 时,jQuery 会将所有值连接到一个字符串中。

如果您想创建一个包含所有单独值的数组,请使用map():

var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').map(function() {
  return $(this).text();
}).get();
console.log(arrival_airport);

关于jquery - 获取多个元素的文本作为单独的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54387794/

相关文章:

javascript - 在函数之后用字符串转义jquery中的引号

jquery - 检测点击单选按钮+标签 :before

bash - 下载大于一定大小的文件

node.js - Mongoose:使用一个模型时处理多个数据库

javascript - 如何在nodejs,JavaScript中的字符后包含字符串

xml - 在 XML 树中搜索特定文本并在下一个节点中提取文本

python - 抓取 API - "Platform source was missing"

javascript对象变量键

javascript - 动态添加 jQuery 事件

javascript - Node/Tedious 未触发 "done"事件