【问题标题】:recursively log all children of all children in dom递归地记录dom中所有孩子的所有孩子
【发布时间】:2020-04-23 06:49:32
【问题描述】:

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

child
   child
       child
-------------------
child
    child
-------------------
child
-------------------
child
   child
      child
-------------------

我当前的代码如下,但它只挖掘了一层并假设一个孩子不会有另一个 X 孩子。我不想继续制作 for 循环,所以我希望有人可以向我介绍一个好的递归方法?

   //check all children inside a child
          for(let j = 0; j < children[i].length; j++){
              console.log(children[i][j])
                      }
                  } 

【问题讨论】:

  • 假设它们如下所示 这些都不是 HTML。如果这些是页面上的元素,你能用 HTML 语法发布它们的结构吗?
  • 你想看看recursion

标签: javascript arrays nodevalue


【解决方案1】:

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)

【讨论】:

  • 谢谢!这就是我一直在寻找的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多