javascript - 了解克罗克福德的 walk_the_dom ("The Good Parts")

标签 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 的第一个Child,或者在本例中为 H1
  3. while(node) 运行一个循环,其中再次运行 walk 函数
  4. func(node) 现在在 H1 上运行函数
  5. node = node.firstChild() 现在等于 H1 的第一个Child,在本例中也称为 #text
  6. while(node) 运行一个循环,其中再次运行 walk 函数
  7. func(node) 在 #text 上运行函数

  8. node = node.firstChild() --> #text 的第一个Child 是什么?

  9. 什么时候达到node.nextSibling

最佳答案

#text 的 firstChildnullundefined,因为没有任何值。 JavaScript 具有所谓的“真实值”。因此 while(null)while(false) 相同。

关于javascript - 了解克罗克福德的 walk_the_dom ("The Good Parts"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27880167/

相关文章:

javascript - 在屏幕中央弹出成功消息,其他所有元素位置都是静态的

javascript - 如何获取一个JS ID作为网站的后台页面?

java - 如何用 Java 缩写 HTML?

javascript - 在 windows 8 html5 的挂起状态事件处理程序中写入文本文件

使用 getElementById 方法进行 JavaScript 电子邮件验证

javascript - 从 jquery 或 javascript 动态添加元素

php - 如何对齐 Bootstrap 缩略图

javascript - ExtJS RESTful服务无法处理json数据

javascript - 如何将参数属性分配给 self?

html - JSP 导入中的编码