如何按顺序遍历DOM
How to do an in-order traversal of the DOM?
我发现了这个荒谬的技术文档:
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-文档
但没有看到它与编写实际的JavaScript代码有什么关系。
我想我可以使用基本的DOM方法和属性,如eachChild()
和.children
来进行遍历,但我不确定最好的策略是什么?
获得根节点后,只需要firstChild
和nextSibling
。这是Douglas Crockford的函数,来自他的书《JavaScript-好的部分》,第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);
});
这里有一种使用document.createNodeIterator
:的方法
var nodeIterator = document.createNodeIterator(document.body);
var currentNode;
while (currentNode = nodeIterator.nextNode()) {
console.log(currentNode);
}
相关文章:
- Bookmarklet目标页DOM遍历.怎样
- jQuery DOM遍历子菜单子菜单
- jQuery DOM 遍历而不重新加载页面
- Javascript 中 DOM 遍历的第一个子节点问题
- DOM 遍历不适用于 prev()
- 第一个孩子最后一个孩子 Dom 遍历不起作用
- DOM 遍历以查找父级的兄弟姐妹
- 使用 DOM 遍历获取属性值失败
- 为什么我的JavaScript DOM遍历不起作用
- 不需要jQuery的DOM遍历库
- 复杂的dom遍历使用javascript
- JavaScript表单DOM遍历-其中是标签文本
- 从锚内的span元素到list的DOM遍历
- 表的DOM遍历:不能在行上找到锚
- JavaScript DOM遍历顺序
- 解释这个DOM遍历顺序
- 为什么这个DOM遍历不能工作
- 获取节点的完整dom遍历地址,从主体向下到节点,而不依赖于getElementBy或$('jQuery'
- Javascript DOM遍历和CSS选择器
- DOM遍历到窗口