码迷,mamicode.com
首页 > Web开发 > 详细

js遍历

时间:2016-09-18 22:21:10      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

NodeIterator

比较简单的迭代器

创建 document.createNodeIterator(root,   whatToShow,   filter  ,  false )

root根节点    whatToShow表示要访问哪些结点代码,通常是NodeFilter.SHOW_ELEMENT

filter过滤器,有两种表示方法,一个对象或者一个函数,后面的false不用理

            var filter={
                acceptNode:function  (node) {//只能有这个函数
                    return node.tagName.tolowerCase()=="p"?
                    NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;
                }
            }
            var filter=function  (node) {//只能有这个函数
                    return node.tagName.toLowerCase()=="p"?
                    NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP;
            }

一开始不是第一个结点 用   a.nextNode(),相应的有a.previousNode()

迭代的代码

            var a=document.createNodeIterator(c,NodeFilter.SHOW_ELEMENT,filter,false);
            var node=a.nextNode();
            for(;node!==null;node=a.nextNode()){
                console.log(node.tagName);
            }

TreeWalker

在filter的点上,多了个NodeFilter.FILTER_REJECT,这个表示在条结点的时候,会整个跳过

在到迭代器是,firstChild就是可以用了

然而,他的强大才开始

他可以用nextSibling()和previousSibling()

 

js遍历

标签:

原文地址:http://www.cnblogs.com/vhyc/p/5883057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!