位置: 编程技术 - 正文

javascript先序遍历DOM树的方法(先序遍历dlr)

编辑:rootadmin

推荐整理分享javascript先序遍历DOM树的方法(先序遍历dlr),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:先序遍历代码数据结构,js先后顺序,先序遍历java,js先后顺序,先序遍历的代码,先序遍历dlr,js后序遍历,先序遍历java,内容如对您有帮助,希望把文章链接给更多的朋友!

DOM树由文档中的所有节点(元素节点、文本节点、注释节点等)所构成的一个树结构,DOM树的解析和构建是浏览器要实现的关键功能。既然DOM树是一个树结构,那么我们就可以使用遍历树结构的相关方法来对DOM树进行遍历,同时DOM2中的"Traversal"模块又提供了两种新的类型,从而可以很方便地实现DOM树的先序遍历。

注:本文中的5种方法都是对DOM的先序遍历方法(深度优先遍历),并且只关注Element类型。

1. 使用DOM1中的基础接口,递归遍历DOM树

DOM1中为基础类型Node提供了一些api,通过这些api可以完成一些基础的DOM操作。使用递归遍历DOM树的代码比较简单,核心思想就是先处理当前节点,然后再从左到右递归遍历子节点,代码如下:

javascript先序遍历DOM树的方法(先序遍历dlr)

2. 使用DOM1的基础接口,迭代遍历DOM树

与第1种方法不同,这一次使用迭代的方法遍历DOM树。使用迭代遍历DOM树相对复杂一些,关键点在于使用一个栈来维护节点的访问路径,当处理完当前节点时,先把该节点的第一个Element子节点作为下一次循环的根节点,并且按照从右到左的顺序,将当前节点的其他子元素节点压入栈中。如果当前节点没有一个Element子节点,则从栈中弹出一个Element节点作为下一次循环的根节点,直到取不到根节点为止。代码如下:

3. 使用DOM扩展的Element Traversal API,递归遍历DOM树

DOMElement Traversal API提供了几个方便DOM遍历的接口,从而可以更加方便地取得一个节点的Element子节点。在《DOM扩展:DOM API的进一步增强[总结篇-上]》的第2节介绍了DOM扩展的Element Traversal API。代码如下:

4. 使用NodeIterator

DOM2的"Traversal"模块提供了NodeIterator类型,使用它可以很方便地实现DOM树的先序遍历,《JavaScript高级程序设计第三版》的.3.1节介绍了这个类型,我们这里直接给出代码如下:

5. 使用TreeWalker

TreeWalker类型可以说是NodeIterator类型的增强版,《JavaScript高级程序设计第三版》的.3.2节介绍了这个类型,我们这里也直接给出代码如下:

标签: 先序遍历dlr

本文链接地址:https://www.jiuchutong.com/biancheng/378993.html 转载请保留说明!

上一篇:JavaScript开发者必备的10个Sublime Text插件(javascript开发app教程)

下一篇:JavaScript实现iframe自动高度调整和不同主域名跨域(javascript的if)

  • 进项税额转出的情况
  • 进项税额记哪方
  • 一般纳税人销售自己使用过的汽车
  • 公司宿舍房租
  • 房地产企业城建税预缴可以抵扣吗
  • 施工企业项目部职责
  • 招标代理专家费由谁支付
  • 税控系统抄报税
  • 超市预付卡开票内容
  • 增值税专用发票验票
  • 增值税发票查询
  • 完税凭证号是几位数
  • 仓库多入库怎么退
  • 利得入什么科目
  • 征信证明怎么开啊
  • windows10命令提示符怎么用
  • 自主研发全流程
  • 装修公司开专票要交几个点
  • 旅游费用账务处理
  • 修理费应该计入什么费用
  • 固定资产减值如何确定
  • linux块设备驱动详解
  • 带息应收票据的核算
  • 房产税去哪交税
  • 巴伐利亚知乎
  • 进出口公司如何做账
  • phpcrawl
  • 开发票如何计算税率
  • 学摄影要交学费吗
  • php中实现文件上传需要用到哪几个函数
  • 科目余额表平了但资产负债表不平
  • ai模拟
  • 前端脚本开发
  • 服务类收入确认
  • 车船税是不是车损
  • 发票校验码是什么在哪
  • 交易性金融资产的入账价值
  • 土地租赁费计入哪个科目
  • 长期股权投资种类
  • 收回已冲销的应收账款会计分录
  • 企业年金是否要交个税
  • 电子发票如何作废,具体怎么操作
  • 注销小规模财务报表怎么办
  • 计提工资 个人所得税
  • 兼职劳务费个税计算器
  • 车辆维修费如何赔偿
  • 内账会计的主要工作
  • 材料暂估入库的账务处理
  • 主营业务收入借方表示
  • 广告公司收到广告收入会计分录
  • 支付厂房租金计入什么会计科目
  • 酒店客人损坏物品不赔偿怎么报警
  • 发票怎么跨月作废申请
  • 增值税申报销项数据怎么自动带出来
  • 刻章费发票怎么开
  • 会计凭证,报告怎么做
  • sql server设置主键primary key
  • 一个 sql 查询很慢,从哪些地方进行优化?
  • 联想Thinkpad怎么进入安全模式
  • win7怎么彻底删除文件
  • windows server vista
  • windows8进入桌面
  • linuxshadow破解
  • 关于session的用法哪些是错误的
  • jquery移动节点的方法
  • linux中的shell命令
  • 基于豆瓣电影数据linux
  • android开发详解
  • python win
  • Unity-DF 2048界面
  • 安卓端数据库
  • 理解JavaScript事件对象
  • 老板思维案例
  • jquery ajax局部加载方法详解(实现代码)
  • webpack循环引用
  • 购房发票上的税率9%包含契税吗
  • 国税局官网发票查验平台
  • 纳税申报模拟
  • 交通运输业的税率9%和13%
  • 车船使用税2021
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设