javascript - 如何对 DOM 进行中序遍历?

标签 javascript

<分区>

我发现了这份荒谬的技术文档:

http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-Document

但没有看到它与编写实际 JavaScript 代码有什么关系。

我想我可以使用基本的 DOM 方法和属性,如 eachChild().children 来进行遍历,但我不确定什么是最好的策略是?

最佳答案

一旦获得根节点,您只需要firstChildnextSibling。这是 Douglas Crockford 的功能,来自他的书 JavaScript - The Good Parts,p. 35:

var walk_the_DOM = function walk(node, func) {
    func(node);
    node = node.firstChild;
    while(node) {
        walk(node, func);
        node = node.nextSibling;
    }
}

它意味着从给定节点遍历 DOM,并在找到的每个节点上运行回调。例如:

walk_the_DOM(document.body, function(node) {
    console.log(node);
});

关于javascript - 如何对 DOM 进行中序遍历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423299/

相关文章:

php - Javascript/PHP - reCaptcha 样式已损坏

javascript - React 自定义钩子(Hook)无限循环

javascript - 固定动态表中的编号

javascript - 当我在 html 标签中使用 ng-controller 时,Angular 停止工作

javascript - 与 Iframe Angular 交互后的 Chrome 后退按钮问题

javascript - 如何使用 JavaScript 将 'this' 传递给函数

javascript - vue Fullcalendar eventRender,添加vue组件

javascript - Angular ng-grid 行高

javascript - 将 Javascript 库与 Google App Engine 集成

javascript - Jquery 延迟/变量立即完成