递归记录 dom 中所有 children 的所有 children
recursively log all children of all children in dom
我试图在 DOM 中递归地获取所有 children。我看过其他一些例子,但它们对于我想要做的事情来说有点过分了。基本上我只想获取页面上节点的所有节点值,假设它们如下所示。
child
child
child
-------------------
child
child
-------------------
child
-------------------
child
child
child
-------------------
我当前的代码如下,但它只挖取一层并假设 child 不会有另一个 X children。我不想继续做循环,所以我希望有人能给我介绍一个好的递归方法?
//check all children inside a child
for(let j = 0; j < children[i].length; j++){
console.log(children[i][j])
}
}
document.querySelectorAll('body *') 应该 return 正文中的每个 DOM 元素,如果需要的话,将它们展平。
如果您正在寻找递归函数
var elements = [];
var recursiveFindChildren = function(el) {
for (let i = 0, iLength = el.children.length; i<iLength; i++) {
elements.push(el.children[i]);
if (el.children[i].children.length) recursiveFindChildren(el.children[i]);
}
return elements;
}
recursiveFindChildren(document.body)
我试图在 DOM 中递归地获取所有 children。我看过其他一些例子,但它们对于我想要做的事情来说有点过分了。基本上我只想获取页面上节点的所有节点值,假设它们如下所示。
child
child
child
-------------------
child
child
-------------------
child
-------------------
child
child
child
-------------------
我当前的代码如下,但它只挖取一层并假设 child 不会有另一个 X children。我不想继续做循环,所以我希望有人能给我介绍一个好的递归方法?
//check all children inside a child
for(let j = 0; j < children[i].length; j++){
console.log(children[i][j])
}
}
document.querySelectorAll('body *') 应该 return 正文中的每个 DOM 元素,如果需要的话,将它们展平。
如果您正在寻找递归函数
var elements = [];
var recursiveFindChildren = function(el) {
for (let i = 0, iLength = el.children.length; i<iLength; i++) {
elements.push(el.children[i]);
if (el.children[i].children.length) recursiveFindChildren(el.children[i]);
}
return elements;
}
recursiveFindChildren(document.body)