dom树的遍历

使用递归和dom遍历dom树形结构 使用递归和dom遍历dom树形结构 完整代码 立即下载

HTML代码

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
  <head>
  	<meta name="keywords" content="扫描dom树" />
  	<meta key="description" content="简单的小demo" />
  	<meta key="author" content="comely-fox" />
    <title>tree</title>
  </head>
  <body>
  <header>header &lt;我也是个节点, 叫文本节点&gt;</header>
  <main>
    <h1>
    	主要内容&lt;我与b是兄弟关系&gt;
    	<b>DOM</b>
    </h1>
    <section>
    	<h1>区段标题</h1>
    	<div>
    	  firtChild - nodeType: 3
    	  <p>我是一段描述性的段落</p>
    	</div>
    	<div>
    	  不知道该写点什么呢?
    	</dvi>
    </section>
  </main>
  <footer>footer节点中的文本节点</footer>
  </body>
</html>

js代码

var traversal= function _walk(node, func) {
	var tree = {node, children: []},
	  i = 0,
	  n = node.firstChild,
	  returnNode = null
	while(n) {
	  if (returnNode = func(n)) {
	    // 递归调用遍历所有子节点
	    tree.children.push(_walk(returnNode, func))
	  }
	  // 每个子节点都有兄弟节点, 需要移动下迭代位置, 防止死循环
	  n = n.nextSibling
	}
	return tree
}

// traversal的回调函数,可以处理一些逻辑
var step = function (node) {
  // 过滤掉其它类型的节点, 只需要元素节点
  return node.nodeType === 1 ? node : false
}

var tree = traversal(document, step)

代码地址

总结:

  1. 首先明确目的
  2. 先完成一层的dom遍历
  3. 再递归完成重复的遍历
总结递归

递归就是把复杂的重复性问题, 找出相同的解法再重复调用自身的过程,把复杂的问题简单化。

多周期路径约束(set_multicycle_path ) 1.由慢到快的多周期约束 如下图所示,发射时钟周期是接受时钟周期的4倍。默认情况下,按照1T原则来进行静态时序分析和布局布线的。即建立时间是在发射沿后的第一个捕获沿检查,而保持时间是同一时刻下源时钟和捕获时钟的触发边沿下检查的(建立时间检查边沿的前一个触发沿)。 但是这样导致的问题就是该路径过于苛刻,为了满足这条路径的要求,不得不放弃其他路径。或者根本没办法保证这个默认的约束。总之最终造成... 阅读详情

相关推荐

SolidWorks参数化建模实战:从规则定义到智能装配

本文深入探讨SolidWorks参数化建模的实战技巧,从规则定义到智能装配的全流程。通过实际案例展示如何提升设计效率300%,确保一致性,并加速系列化开发。重点解析草图阶段植入设计意图、装配体级参数化及高级技巧,帮助工程师掌握三维建模的核心竞争力。

weixin_29306317的博客 418

DOM树的遍历

一,遍历DOM树的分析思路 1.先获取整个页面的Dom节点:foot=document.documentElement; 2.后创建一个函数用于遍历Dom树 : 此函数需要传进一个参数,此参数是html文档中的根节点 然后在调用一个用于求节点的子节点的函数 3.创建节点的子节点的函数: 此函数需要一个参数,用...

生活步步是坎坷,笑到最后是大哥 1129

Matlab实战:如何用MMG方程预测船舶轨迹(附完整代码)

本文提供了一份基于MMG方程的Matlab实战指南,详细讲解了如何从零构建船舶轨迹预测模型。内容涵盖MMG模型的核心原理、Matlab代码框架设计、动力学函数实现、参数调优与验证方法,并附有完整代码示例,帮助工程师和研究者快速掌握这一船舶操纵性预测的关键技术。

v6b7n8m9q0的博客 523

DOM深入学习 --- DOM 树介绍,如何遍历 DOM 树节点(一)

DOM 树 HTML 文档的主干是标签(tag)。 根据文档对象模型(DOM),每个 HTML 标签都是一个对象。嵌套的标签是闭合标签的“子标签(children)”。标签内的文本也是一个对象。 所有这些对象都可以通过 JavaScript 来访问,我们可以使用它们来修改页面。 例如,document.body 是表示 <body> 标签的对象。 运行这段代码会使 <body> 保持 3 秒红色状态: document.body.style.background = 'red'; /

秋天,黄叶坠地,凉风有信。 4070

SAP MTO实战:从销售订单到生产订单的精准触发与配置详解

本文深入解析SAP系统中按订单生产(MTO)模式的核心流程与配置。详细阐述了如何通过精准配置物料主数据策略组、需求类型及计划策略(如策略50),实现从销售订单自动触发生产订单的完整链路。文章结合实战案例,指导用户打通销售与生产环节,并提供了关键事务代码与常见问题排查指南,助力企业实现以销定产,优化库存与成本控制。

weixin_29300931的博客 216

InVEST模型实战指南:从水源涵养到热岛缓解的生态系统服务评估

本文提供了InVEST模型的实战指南,详细介绍了从环境搭建、数据预处理到核心模型应用的完整流程。通过水源涵养、碳存储、土壤保持和城市热岛缓解等核心模型的拆解,帮助生态学者与规划者系统量化评估生态系统服务,将复杂的生态价值转化为直观的空间数据与地图,为科学决策提供有力支撑。

weixin_29197051的博客 430

DOM系列:DOM树和遍历DOM

&#13; &#13; &#13; &#13; &#13; &#13; &#13; 上一节,咱们整理了DOM系列中的第一篇,主要介绍浏览器与DOM相关的知识。从标题中我们可以看出来,今...

W3cplus 2929

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 475

遍历DOM树的方法

第一种: 首先假设一棵简单的DOM树 <div id="subTree"> <form> <input type="text" name="" value=""> </form> <p>Paragraph</p> <span>S...

weixin_40401500的博客 708

prometheus普罗米修斯集监控外部k8s

prometheus普罗米修斯集监控外部k8s

你是我一生的追求 2250

Linux下的隐藏技术(文件隐藏、进程隐藏、端口隐藏、权限隐藏、命令隐藏)

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。这种情况下我们怎么办?在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

墨痕诉清风的博客 747

java 递归遍历dom,DOM树遍历之JS实现DFS&BFS

我们一般可以采用DFS(深度优先遍历)和BFS(广度优先遍历)来遍历DOM树介绍 DFS & BFS我们来结合具体例子进行分析,给出HTML代码片段如下:DFS总是先进入下一级节点,只有当下一级没有未遍历的子节点时才会进入到当前层级的其它节点。对于上面例子DFS遍历结果应为:root, container, sidebar, menu, main, post, copyrightBFS则总...

weixin_42463997的博客 294

apt-get update时出现GPG error:... bionic InRelease:The following signatures were invalid: EXPKEYS解决方案

本文主要介绍了apt-get update时出现W: GPG error: … bionic InRelease: The following signatures were invalid: EXPKEYSIG B7B3B788A8D3785C MySQL Release Engineering E: The repository ‘… bionic InRelease’ is not signed.解决方案,希望能对使用Ubuntu系统的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

JavaScript 实现 DOM树 的遍历

普通二叉树的遍历 function Tree() { var Node = function(key){ this.key = key; this.left = null; this.right = null; } root =null; } 前序遍历

ll_xiaohanqing_91的博客 7069

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

纯javascript实现dom树的遍历

二叉 DOM 树的遍历 [javascript] view plain copy   function Tree() {                  var Node = function(key){               this.key = key;               this.left = null;       

遇见更好的自己 2706

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JS遍历DOM树

遍历页面中的DOM树,输出所有标签 var root=document.documentElement; function forDOM(root) { console.log(root.nodeName); var children=root.children; forChild(children); } function...

LY 1716

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

遍历DOM树元素

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>遍历 DOM 树</h1> ...

空巷挽清风 347

如何遍历整个DOM树

一篇文章掌握JavaScript遍历DOM树

Lipn_的博客 710

遍历DOM树

遍历DOM树 <script type="text/javascript"> //获取页面中的根节点 var root = document.documentElement; //console.log(root); //默认获取页面中的整个标签 //封装一个函数用来获取页面中的所有节点 function getDom(root) { //获取...

JGD313的博客 225

JS实现DOM树的遍历

二叉 DOM 树的遍历 [javascript] view plain copy function Tree() {                  var Node = function(key){               this.key = key;               this.left = null;        

梦颖飞燕--博客 4039

jquery遍历 DOM树遍历

遍历是指获取DOM树的任何一个节点,这里一个简单的DOM树举个例子: 这里那些简单的属于不予介绍了,就是parent,child,siblings,descendent,ancestor等,这写可以通过字面意思就可以了解。 简单分类的话,可以分为traversign-ancestor和traversing-descendent3类,就是往父亲节点方向遍历和往子节点方向和往兄弟节点方向遍历。...

Abudula__的博客 900

html递归遍历,js中如何递归遍历dom树

本文教程操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。dom树是什么?dom是文档对象模型,为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。dom是由节点组成的,HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树。使用递归遍历dom树:判断传入的数据是否是数组,遍历跟节点functiongetTree2(data,id){//...

weixin_33632843的博客 352

递归遍历dom树

递归遍历dom树 ● 递归用在一些树状结构非常方便,因为树状要遍历就需要一级一级往下,再一级一级回来 ● 代码如下: function getChild(ele) { for (let i = 0; i < ele.children.length; i++) { console.log(ele.children[i]) // 找当前这个元素的子元素

gaoyan426926的博客 349

原生js遍历DOM树

var list = []; //声明一个数组list,用来存放元素的后代元素. function getChildrens(ele){ var children = ele.children; for(var i = 0 ; i &amp;lt; children.length; i++){ var child = children[i]; //c...

Pima 3687

递归遍历Dom树

想了很久,这个问题必须的攻克;如何遍历dom节点树?最近学习了vue有一个虚拟dom,本质上来讲,虚拟dom就是个对象,在对象中储存不同节点的信息。然后和新的数据对比,做出修改;根据这个思路写了一个Vw构造函数,根节点可以使用,id查找,类名或者标签; 代码如下; function Vw(e){ this.el=e.el.replace(/\s*/g,''); this.data=e.data; this.success=e.success; this.tree=[];

qq_52440306的博客 519

DOM树在内存中的表示及JSX的遍历

1. DOM遍历 Question: 请用递归的方式遍历树形数据结构中的每一个节点 const options = [ { value: 'zhejiang', label: 'Zhejiang', children: [ { value: 'hangzhou', label: 'Hangzhou', ch...

hai_xia的博客 541
上一篇: CSS选择器
下一篇: 本地远程连接阿里云服务器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值