-1

我试图让所有的孩子递归地进入 DOM。我看过其他一些例子,但它们对于我正在尝试做的事情来说有点过分了。基本上,我只想获取页面上节点的所有 nodeValues,假设它们看起来像下面这样。

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])
                      }
                  } 
4

1 回答 1

0

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)
于 2020-04-23T07:01:33.207 回答