<分区>
我发现了这份荒谬的技术文档:
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-Document
但没有看到它与编写实际 JavaScript 代码有什么关系。
我想我可以使用基本的 DOM 方法和属性,如 eachChild()
和 .children
来进行遍历,但我不确定什么是最好的策略是?
标签 javascript
<分区>
我发现了这份荒谬的技术文档:
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-Document
但没有看到它与编写实际 JavaScript 代码有什么关系。
我想我可以使用基本的 DOM 方法和属性,如 eachChild()
和 .children
来进行遍历,但我不确定什么是最好的策略是?
最佳答案
一旦获得根节点,您只需要firstChild
和nextSibling
。这是 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 - 当我在 html 标签中使用 ng-controller 时,Angular 停止工作
javascript - 与 Iframe Angular 交互后的 Chrome 后退按钮问题
javascript - 如何使用 JavaScript 将 'this' 传递给函数
javascript - vue Fullcalendar eventRender,添加vue组件
javascript - Angular ng-grid 行高