使用 cheerio 获取 div 的所有子节点?

Get all child nodes of div using cheerio?

<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 块”和 "Last Text5")。我的最终目标是基本上拆分 HTML 块我到达第一个 class 为 "bye" 的元素。所以我想要一个包含以下 html 字符串的数组,

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

您可以尝试使用 map or filter 方法。

例如:

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

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