我正在尝试递归地获取DOM中的所有子级。我看了一些其他的例子,但它们对于我想要做的事情来说有点太多了。基本上,我只想获取页面上节点的所有nodeValue,假设它们看起来像下面的样子。
child
child
child
-------------------
child
child
-------------------
child
-------------------
child
child
child
-------------------
我目前的代码如下,但它只挖下一层,并假设一个孩子不会再有X个孩子。我不想一直制造循环,所以我希望有人能给我介绍一个好的递归方法?
//check all children inside a child
for(let j = 0; j < children[i].length; j++){
console.log(children[i][j])
}
}
document.querySelectorAll('body*'(应该返回正文中的每个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)