【问题标题】:Get all child nodes of div using cheerio?使用cheerio获取div的所有子节点?
【发布时间】:2016-08-15 08:36:05
【问题描述】:
<div class="hello">
  Text1
  <li>Text2</li>
  <div class="bye">Text3</div>
  Text4 Block
  <div class="bye">Text5</div>
  Last Text5
</div>

所以我使用$('div.hello') 在cheerio 中获取了以上内容。我想遍历它。如何遍历包括文本节点在内的所有内容?我尝试使用$('div.hello').contents(),但这并没有抓取文本节点(“Text1”、“Text4 Block”和“Last Text5”)。我的最终目标是当我到达第一个具有“再见”类。所以我想要一个包含以下 html 字符串的数组,

final_array = ['Text1 <li>Text2</li>', '<div class="bye">Text3</div> Text4 Block <div class="bye">Text5</div> Last Text5']

【问题讨论】:

    标签: javascript jquery node.js cheerio


    【解决方案1】:

    您可以尝试使用mapfilter 方法。

    例如:

    var text = $('div.hello').contents().map(function() {
        if (this.type === 'text')
            return $(this).text().trim()
    }).get()
    

    基本上在回调函数中你需要使用if's 来得到你想要的。

    【讨论】:

      猜你喜欢
      • 2019-02-14
      • 2020-12-13
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多