了解Crockford的walk_the_dom(“好的部分”)

时间:2015-01-10 19:13:05

标签: javascript jquery html recursion

我正在尝试通过以下方式了解Crockford的walk_the_dom函数。这是我的逻辑和我正在使用的DOM树。我没有看到何时到达node.nextSibling

Example diagram

function walk(node, func) {
    func(node);
    node = node.firstChild;
    while (node) {
        walk(node, func);
        node = node.nextSibling;
    }
};
  1. func(node)在给定节点上运行一个函数。
  2. node = node.firstChild()现在等于document.body的firstChild,或者在这种情况下, H1
  3. while(node)运行循环,再次运行 walk功能
  4. func(node)现在在 H1
  5. 上运行一个函数
  6. node = node.firstChild()现在等于 H1 的firstChild,在这种情况下也称为 #text
  7. while(节点)运行循环,再次运行 walk功能
  8. func(node)在 #text

  9. 上运行一个函数
  10. node = node.firstChild() - >什么是 #text 的第一个孩子?

  11. 何时 node.nextSibling 到达?

1 个答案:

答案 0 :(得分:2)

#text的firstChildnullundefined,因为没有任何内容。 JavaScript具有所谓的truthy值。因此while(null)while(false)相同。