DOM 节点遍历可视化

DOM 树是树形结构,且对 DOM 的操作可以在浏览器中看到,那么是否可以借此做对树形结构操作的可视化呢?

今日在写一个用来高亮 DOM 节点中匹配到指定正则的文本的代码时,实现了一个遍历 DOM 节点的函数:

const traverseNode = (node, cb, isChild) => {
  if (node.firstChild) {
    traverseNode(node.firstChild, cb, true);
  }

  cb(node);

  if (isChild && node.nextSibling) {
    traverseNode(node.nextSibling, cb, true);
  }
};

写完之后,我想到一个问题:既然 DOM 树是个树形结构,而且对 DOM 节点样式的修改可以被浏览器反映出来,那么是否可以做出遍历树形结构的可视化呢?

成果: