<!-- NodeIterator -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>aaa</title>
</head>
<body>
<div id="app" class="a">
<p class="b"><b class="c">hello</b>hello</p>
<ul class="d">
<li class="e">1</li>
<li class="f">2</li>
<li class="g">3</li>
<li class="h">4</li>
</ul>
</div>
</body>
</html>
    let app = document.getElementById('app');
let app2 = document.createNodeIterator(app, NodeFilter.SHOW_ELEMENT, null, false);//显示元素节点(参数许多,可以改变)
let node = app2.nextNode();
while (node != null) {
alert(node.className);
node = app2.nextNode();
}

2、TreeWalker    ( 和上面方法大致相似 )

可以在不同方向上遍历DOM结构

parentNode();  ==遍历到节点的父节点

fristChild();  ==遍历到节点的第一个子节点

lastChild(); ==遍历到当前节点的最后一个节点

nextSibling();  ==遍历到当前节点的同辈节点

previousSibling();  ==遍历到当前节点的上一个同辈节点

遍历HTML DOM 树的更多相关文章

  1. 函数遍历DOM树

    //获取页面中的根节点--根标签   var root=document.documentElement;//html   //函数遍历DOM树   //根据根节点,调用fn的函数,显示的是根节点的名 ...

  2. 先序遍历DOM树的5种方法

    DOM树由文档中的所有节点(元素节点.文本节点.注释节点等)所构成的一个树结构,DOM树的解析和构建是浏览器要实现的关键功能.既然DOM树是一个树结构,那么我们就可以使用遍历树结构的相关方法来对DOM ...

  3. 遍历DOM树

    遍历DOM在jQuery中是非常重要的技术. 遍历DOM之前,需要对DOM有清晰的认识,了解文档节点.元素节点.属性节点.文本节点等相关概念.不清楚可以温习下<JavaScript教程.DOM树 ...

  4. jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别

    http://www.poluoluo.com/jzxy/201312/253059.html 在这个sprint中,因为要写前端UI,所以用到了jQuery,但是jQuery在向上遍历DOM树的AP ...

  5. 拷贝和遍历DOM树

    一.浅拷贝: 拷贝就是复制,就相当于把一个对象中的所有内容,复制一份给另一个对象,直接复制, 或者说,就是把一个对象的地址给了另外一个对象,他们的指向相同,两个对象之间有相同的属性或者方法,都可以使用 ...

  6. JS高级---遍历DOM树

    遍历DOM树  第一个函数: 给我根节点, 我会找到所有的子节点: forDOM(根节点)  获取这个根节点的子节点  var children=根节点的.children  调用第二个函数  第二个 ...

  7. 通过Ztree生成页面html元素Dom树,以及拖拽改变元素的位置

    zTree 是一款依靠 jQuery 实现的多功能 "树插件",http://www.treejs.cn/v3/main.php#_zTreeInfo,功能强大,不多赘述. 下面我 ...

  8. 从Chrome源码看浏览器如何构建DOM树

    .aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } p { font-size: 1 ...

  9. DOM树的增查改删总结

    DOM树的增查改删总结 摘要:对HTML DOM的操作是前端JavaScript编程时必备的技能,本文是我自己对DOM树操作的总结,主要是方法的罗列,原理性的讲述较少,适合大家用于理清思路或是温习 一 ...

随机推荐

  1. [转帖]HPE的软件部分到底是谁的?

    英国Micro Focus公司收购惠普旗下软件部门 http://www.gongkong.com/news/201710/369740.html 搞不清楚 现在ALM 到底是谁的资产了.. 据国外媒 ...

  2. [转帖]一键获取 所有连接过的wifi 密码

    cmd 一键获取 所有连接过的wifi 密码 转帖来源: http://www.cnblogs.com/hookjoy/p/5537623.html for /f "skip=9 token ...

  3. vue小问题库

    引入vue组件命名时,不用特殊标签,比如<head>,不然会按特殊标签处理

  4. AJAX+springmvc遇到的问题

    当我使用AJAX将表单的值传入处理器中后,经过了一个判断再进行页面跳转时,不能在处理器中使用重定向,它会将重定向的页面内容在AJAX的data中显示出来而不是显示一个页面 所以只能在AJAX 的suc ...

  5. hive自定义函数

  6. python之路--小数据池,再谈编码,is和 == 的区别

    一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...

  7. 部署wp 的时候遭遇的google字体问题

    国内WP CDN问题昨天下午到今天中午 总算解决了WORDPRESS 在 谷歌字体被枪毙之后带来的一系列问题..在天朝想当个 安静的美男子设计师也是那么烦恼的事情捏! 解决办法将所有的带fonts.g ...

  8. chrome版本下载

    chrome 下载:https://www.chromedownloads.net/chrome64win/ chromedriver下载:http://chromedriver.storage.go ...

  9. vs code配置

    新版的用户设置不是代码, https://blog.csdn.net/zhaojia92/article/details/53862840 https://www.cnblogs.com/why-no ...

  10. TestNG之测试执行后没有生成默认测试报告(IDEA)

    使用IDEA+TestNG进行测试,没有生成 测试报告,是因为没有勾选监听器使用默认报告,具体操作如下: “Run” -> "Edit Configurations" -&g ...