遍历同辈节点的方法_常用的遍历节点方法

[常用的遍历节点方法]

取得匹配元素的所有子元素组成的集合: children(). 该方法只考虑子元素而不考虑任何后代元素.

取得匹配元素后面紧邻的同辈元素的集合(但集合中只有一个元素): next()

取得匹配元素前面紧邻的同辈元素的集合(但集合中只有一个元素): prev()

取得匹配元素前后所有的同辈元素: siblings()

查找相关元素的前一个兄弟元素的函数

elem = elem.previousSibling;

查找相关元素的下一个兄弟元素的函数

elem = elem.nextSibling;

查找元素第一个子元素的函数

elem = elem.firstChild;

查找元素最后一个子元素的函数

elem = elem.lastChild;

返回当前元素的父元素,类似parentNode元素属性。你可以一次用一个数字来操纵多个父元素,例如parent(elem,2)就等同于parent(parent(elem))。

查找元素父元素的函数

elem.parentNode;

代码清单5-2 XML文档空格bug的补救方案

function cleanWhitespace( element ) {

// 如果不提供参数,则处理整个HTML文档

element = element || document;

// 使用第一个子节点作为开始指针

var cur = element.firstChild;

// 一直到没有子节点为止

while ( cur != null ) {

// 如果节点是文本节点,并且只包含空格

if ( cur.nodeType == 3 && ! /\S/.test(cur.nodeValue) ) {

// 删除这个文本节点

element.removeChild( cur );

// 否则,它就是一个元素

} else if ( cur.nodeType == 1 ) {

// 递归整个文档

cleanWhitespace( cur );

}

cur = cur.nextSibling; // 遍历子节点

}

}

假设你要在前面例子中使用这个函数来查找位于

元素后的元素。那么代码应该类似这样:

cleanWhitespace();

// 查找H1元素

document.documentElement

.firstChild // 查找Head元素

.nextSibling // 查找元素

.firstChild // 得到H1元素

.nextSibling // 得到相邻的段落(p)

该技术有优点也有缺点。最大的优点在于,你可以保证DOM文档的遍历在一定程度上的稳定性。但明显性能太差,想想必须遍历每个DOM元素和文本节点,目的只是为了找出包含空格的文本节点。假设你有一个包含大量内容的文档,它可能会严重降低网站的加载速度。此外,每次为文档注入新的HTML,你都需要重新扫描DOM中的新内容,确保没有增加新的有空格填充的文本节点。

此外此函数重要的方面是节点类型的使用。节点的类型可以由检查它的nodeType属性来确定。可能会出现好几种值,但你经常会碰到的是以下3个:

l    元素(nodeType=1):匹配XML文件中的大部分元素。比如,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值