JavaScript 遍历DOM树
来源:互联网 发布:c语言常用算法 编辑:程序博客网 时间:2024/05/25 13:33
1. 前序遍历
function preOrder(node){ if(node){ arr.push(node); preOrder(node.firstElementChild); preOrder(node.lastElementChild); }}
2. 中序遍历
function inOrder(node){ if(node){ inOrder(node.firstElementChild); arr.push(node); inOrder(node.lastElementChild); }}
3. 后序遍历
function postOrder(node){ if(node){ postOrder(node.firstElementChild); postOrder(node.lastElementChild); arr.push(node); }}
4. 广度优先遍历
// 递归版本function bfs(root){ const nodes = Array.isArray(root) ? root : [root]; const nextNodes = []; // 广度优先 nodes.forEach(node => { if (node.children && node.children.length) { Array.prototype.slice.call(node.children).forEach(ele => { console.log(ele.className); nextNodes.push(ele); }); } }); if (nextNodes.length) { bfs(nextNodes); }}// 非递归版本function bfs(root) { // 传参为根节点 let nodes = Array.prototype.slice.call(root.children); while(nodes.length) { let tmp = []; nodes.forEach(function (node) { console.log(node.className); if (node.children.length) { tmp = tmp.concat(Array.prototype.slice.call(node.children)); } }); nodes = tmp.slice(0); }}
5. 深度优先遍历
function dfs(root) { console.log(root.className); const nodes = Array.prototype.slice.call(root.children); if (nodes.length) { nodes.forEach(function (node) { dfs(node); }); }}
0 0
- Javascript Dom树遍历
- JavaScript 遍历DOM树
- JavaScript 实现 DOM树 的遍历
- 纯javascript实现dom树的遍历
- javascript DOM 遍历
- Javascript 遍历DOM Tree
- JavaScript 遍历DOM
- JS--遍历DOM树
- 遍历DOM文档树
- [JavaScript]遍历DOM对象所有属性
- javascript递归遍历所有DOM文档节点
- javascript DOM的操作,更新,遍历,添加
- javascript 遍历dom 节点统计类型
- javascript dom-文档结构和遍历
- JavaScript学习-DOM扩展_元素遍历
- JavaScript DOM深度遍历(2种方法)和广度遍历
- 14.jquery DOM操作 遍历DOM树
- HTML#DOM树的遍历
- 微信、支付宝扫码支付地址
- java spring jdbc 自动封闭实体类
- 设计模式之工厂模式
- angular使用ng-options,第一个option为空的问题
- 关于u盘提示格式化,只剩8M但又格式化不了的数据恢复教程的处理办法
- JavaScript 遍历DOM树
- 【算法入门】广度/宽度优先搜索(DFS)
- 怎样查看端口号和端口号被哪个程序占用
- java IO
- csdn资源下载后评论 验证码错误,什么鬼?
- Android混淆
- IDEA配置Tomcat并运行web项目
- 安装npm完成,idea的terminal命令行却显示不是内部命令
- Tersorflow CIFAR-10 训练示例报错及解决方案