javascript - 通过递归实现的 JavaScript DOM 深度
问题描述
我有一个带有一堆递归子节点的节点。我试图找出每个节点离根有多远(它的 id 为“comment-0”)。
我有以下 HTML 结构:
<div id="comment-0">
<div id="comment-2598" class="comment comment--parent" data-cid="2598">
<div id="comment-2599" class="comment comment--child" data-cid="2599">
<div id="comment-2615" class="comment comment--child" data-cid="2615">
</div>
</div>
<div id="comment-2604" class="comment comment--child" data-cid="2604">
<div id="comment-2616" class="comment comment--child" data-cid="2616">
</div>
</div>
</div>
</div>
调用函数:
rootNode.querySelectorAll('.comment').forEach((el)=>{
const result = findDepth(el,0);
console.log("el: "+el.id, result);
});
和我的递归函数:
const findDepth = (el, depth) => {
depth++;
console.log(el.id, el.parentNode.id);
console.log(depth);
if(el.parentNode.id !== 'comment-0'){
findDepth(el.parentNode, depth);
}else {
return depth;
}
};
递归函数似乎成功地找出每个节点离根的距离,但是,无论depth
函数内部的值如何,当返回值时它是未定义的,我不明白为什么。
解决方案
推荐阅读
- mysql - 在 Nodejs 中防止并发
- java - Java 13 三引号文本块 *WITHOUT* 换行符
- python - 基于随机布尔值在python中创建四叉树
- php - 与 Mcrypt 相比,使用 OpenSSL 的加密/解密导致不同的结果
- python - 对于循环 i 数据帧计数行而不是列
- node.js - 如果我访问我网站中的特定页面而不访问我的主页,则无法加载 reactjs 组件-(Node + MongoDB + express + ReactJs)
- android - 将存储库类注入 ViewModel 的最佳方法是什么?
- javascript - 在 JavaScript 中计时 if 语句
- javascript - 关于 React 组件中 .this 绑定的问题
- r - R read.csv 可以返回一个空的数据框吗?