有没有办法在cheerio中选择每个分支中最深的孩子(特别是div)?
示例:
<div id="parent">
<div>
<div id="dontSelectThisSinceThereIsADeeperDiv"></div>
<div>
<div id="selectThis"></div>
</div>
</div>
<div id="selectThisAlso"></div>
<div>
<div id="selectThisAsWell"></div>
</div>
</div>
基本上,我想要选择的所有div都是来自父级的“分支”中最深的。有没有办法在cheerio中做到这一点?
答案 0 :(得分:1)
看起来没有一个功能可以满足您的需求。但是您可以通过使用不同的cheerio函数来创建自己的函数。对于一个递归的例子(没有经过测试,但希望你能得到这个想法):
function getLeaves(parent, result = []) {
let children = $(parent).children()
if(children.length > 0){
children.each((i, elem) => getLeaves(elem, result))
}else{
result.push(parent)
}
return result
}
let leaves = getLeaves('#parent')