ElementTraversal API的元素遍历

本文探讨了不同浏览器中DOM遍历的差异,特别是在IE9及之前版本与其他现代浏览器之间的表现区别。文章介绍了如何利用标准属性(如childNodes、firstChild等)及ElementTraversal规范来高效遍历DOM树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于元素间的空格,IE9及之前的版本不会返回文本节点,而其它所有浏览器都会返回文本节点。这样导致使用childNodes和firstChild等属性时行为不一致。

PS:

childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。

children 属性,非标准的,它返回指定元素的子元素集合,但IE8及更早的版本,children属性也会包含注释节点,支持的浏览器:IE5, Firefox3.5, Safari2 (有bug) Safari3(完全支持),Opera8+,Chrome


使用firstChild、lastChild、nextSibling、previousSibling、childNodes等属性进行遍历,要得到元素节点

我们还需要借助:

nodeType(节点类型,元素节点是1,文本节点是3)、

nodeName(节点名称,对于元素节点,返回tagName,对于文本,则返回#text)

nodeValue(节点值,元素节点为空,文本节点的nodeValue属性即为文本内容)

等来判断节点的类型

Element Traversal规范定义了ElementTraversal接口,它允许脚本遍历DOM树中的元素(element)节点,而不包含元素节点之外的其他节点,如注释节点、文字节点等。这个规范给我们提供了快速、方便的方法来访问元素节点:

childElementCount、firstElementChild、lastElementChild、previousElementSibling、nextElementSibling.

浏览器兼容性:IE9+,Firefox3.5+,Safari4+,Opera10+,Chrome. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值