【问题标题】:Cheerio - Unable to obtain children of elementCheerio - 无法获得元素的孩子
【发布时间】:2023-04-03 15:26:01
【问题描述】:

这是打印我的${element} 时的输出:

我希望获得我的${element} 的第一个孩子的数据,其类型为:"text" 和数据valid duration (hours:minutes:seconds)。就我而言,我想获得"5:01"

但是,当尝试使用 ${element}.children() 获取所有孩子时,我得到以下信息:

基本上没有我可以检查/获得的datatype。我做错了什么?

【问题讨论】:

  • 你能写下你试图解析的 HTML 的相关部分和你的 Javascript 代码来解析它吗?如果我们能够重现和调试它,对每个人来说都会更容易。
  • 你能查一下吗?我的解决方案是否可行?

标签: javascript html node.js cheerio


【解决方案1】:

${element}.children().first().data()

【讨论】:

  • 尝试添加选择器${element}.children('type="text"').first().data()
  • 它仍然为我输出 undefined。问题是打印时$(element).children()datatype 缺失,如上图所示。
  • Children() 本身不会向您显示该元素。实际上,它返回了一个子元素数组。所以要确保数据存在或不尝试打印children()[0]
【解决方案2】:

从日志图像中我可以看到 children 属性是一个数组而不是一个函数。

以下代码应该会为您提供所需的数据。

element.children.find(child => child.type == 'text').data;

【讨论】:

  • @pguardiario 常规数组有find 方法
  • 我有一个与 OP 相似的数据结构,这解决了它?
猜你喜欢
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 2013-08-03
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多