位置: 编程技术 - 正文

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)

  • 单独计税的年终奖怎么算
  • 非关联企业借款利息扣除
  • 进口增值税的计税价格为
  • 基本户可以直接转账给个人吗
  • 出口商品认证
  • 两年前发票怎么红冲
  • 注册资本为0的企业
  • 离岸外包和国内外包区别
  • 单位没有给员工交社保工伤怎么算
  • 建筑简易征收的合同怎么写
  • 直接转让土地使用权税费
  • 预付费卡税务处理
  • 退货退款分录
  • 公司收到虚开发票谁承担
  • 企业出售产品
  • 分配利润和分配股利
  • 委托加工应税消费品收回后直接销售
  • 公证处委托他人办理房产证手续
  • 没有原始凭证可以审计吗
  • 测测网络
  • 发生额对照表
  • 入账价值和账面余额一样吗
  • 华为设置输入法手写
  • 购买财务软件会有操作流程吗
  • 目前超频最高几ghz
  • php flock函数
  • 海关发票丢失怎么处理
  • 房地产企业项目开发法律风险
  • 出售银行承兑汇票
  • 前端框架学哪个好
  • code particle
  • 发票复核和收款人未填写
  • 网页视频不显示画面
  • vue2vue3的区别
  • vue该怎么学
  • 汽车维修费发票怎么开
  • 命令start
  • 出售一台设备,收到价款20万
  • phpcms v9 getshell
  • 个人所得税其他扣除300一个月
  • 免税普票要交企业所得税吗
  • 应交税费案例分析题
  • 什么情况企业需要调档
  • 小规模企业申报哪些税
  • 固定资产折旧加计扣除最新政策
  • 一般纳税人商贸企业的税负是多少
  • 政府补助的界定
  • mysql数据库压力测试工具
  • 营业外收入可以冲减管理费用吗
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 建筑劳务清包工账务处理
  • 外出经营预交企业所得税税率
  • 购入啤酒会计分录
  • 公司买汽车计入什么费用
  • 预收货款转营业外收入
  • 可抵扣的税票
  • 金融企业借款费用计入
  • mysql5.7解压版安装
  • 电脑系统文件受损
  • win8设置怎么打开
  • ubuntu chsh
  • ubuntu系统中安装微信步骤
  • rhel7.5重置密码
  • centos7 cp命令
  • 控制面板中的添加和删除在哪里
  • linux忘记密码怎么重启
  • eve是什么文件
  • linux使用yum
  • nod32kui.exe - nod32kui是什么进程 作用是什么
  • tplinkwr740n设置
  • win7共享设置(详细图文步骤)
  • opengl oes纹理
  • 如何设置edittext控件中的文字
  • express常用中间件
  • 单页图片和文字怎么设置
  • jquery树形菜单
  • 两个Collider遮挡的解决办法
  • 福建省个人所得税税率表查询
  • 小规模纳税企业的增值税税率一律为3%
  • 出口退税备案单证目录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设