如何找到html中最深的那个Element节点?

貌似用递归可以实现,怎么弄?

阅读 3.1k
3 个回答

DFS吗 最基础的算法

image.png
假如是这样一组数据从上到下,从左到右开始遍历,那么最后一个元素就是我想要的结果。

image.png
大概就是这样一组数据

试了一下楼上的算法是正确的。那我就不写了
image.png

var deep = 0; //深度层级
var ele = document.body // 最深的元素的第一个
var eles = [ ele ] //最深的元素数组

function fn(_ele,_deep=0 ){
    if(_deep > deep){
        deep = _deep
        ele = _ele
        eles = [ _ele ]
    }else if(_deep === deep){
        eles.push(_ele)
    }
    if(_ele.children && _ele.children.length > 0){
        Array.from(_ele.children).forEach(item=>{
            fn(item, _deep + 1)
        })
    }
}
fn(ele);
console.log(deep, ele, eles)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题