Javascript 可以在cheerio中选择最深的DOM子项吗?
有没有办法选择cheerio中每个分支(特别是div)中最深的子级 例如:Javascript 可以在cheerio中选择最深的DOM子项吗?,javascript,html,node.js,dom,cheerio,Javascript,Html,Node.js,Dom,Cheerio,有没有办法选择cheerio中每个分支(特别是div)中最深的子级 例如: <div id="parent"> <div> <div id="dontSelectThisSinceThereIsADeeperDiv"></div> <div> <div id="selectThis"></div> </div> </div> <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中有没有可能做到这一点的方法?看起来没有一个函数可以满足您的需求。但您可以通过使用不同的cheerio函数来创建自己的函数。对于递归示例(未经测试,但希望您能理解):
您想在
parent
div的分支中找到最深的一个吗?还是递归地。基本上,我希望选择我在示例中提到的所有div
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')