在document.createTreeWalker()中过滤(3)

在这种情况下,并非文档中的所有DIV和IMG元素都可以被提取! 这是因为图像可能包含在被拒绝的元素(如<P>)中,导致TreeWalker在遇到不需要的P元素时自动跳过它。

- 示例:按类属性处理元素

在本演示中,我将使用TreeWalker对象轻松过滤出页面上的所有元素,其中class =“blue”,并将其颜色更改为红色。

1
2
3
4
6
7
8
9
10
11
12
13
14
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >getelementbyclass =函数(节点){</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
if (node.className ==“blue”) //过滤掉具有此class属性的元素</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
返回NodeFilter.FILTER_ACCEPT</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
其他</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
返回NodeFilter.FILTER_SKIP</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font><font></font>
<font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
var rootnode = document.body</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
var walker = document.createTreeWalker(rootnode,NodeFilter.SHOW_ELEMENT,getelementbyclass, false )</font></font><font></font>
<font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
while (walker.nextNode())</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
walker.currentNode.style.color = “红”</font></font><font></font>
<font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
walker.currentNode = document.body //将Tree Walker位置重置为根节点</font></font>

这里没什么新东西,但注意红线。 在我遍历我的Tree Walker实例后,我将其currentNode属性重置回根节点,因此后续调用将在再次收集已过滤节点的开始时开始。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69933200/viewspace-2652590/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69933200/viewspace-2652590/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值