DOM中的遍历

1. NodeIterator和 TreeWalker。这两个类型能够基于给定的起点对 DOM 结构执行深度优先遍历

    ① NodeIterator类型,有两个方法,nextNode()--在遍历中向前前进一步,previousNode()--在遍历中向后后退一步

          使用document.createNodeIterator(root,whatToShow,filter,entityReferenceExpansion)函数来创建NodeIterator实例。

          参数的意义:

                    root:作为便利起点的根节点。

                    whatToShow:要显示的节点类型(值以常量的形式在NodeFilter类型中定义)。

                    filter:过滤器。可以是① NodeFilter对象或者② 接受或者拒绝某种特定节点的函数

                    entityReferenceExpansion:是一个布尔值,表示是否要扩展实体引用(HTML页面中,实体引用不可以扩展)

                    如:打印下述文档中所有的元素节点。

        若要指定filter,则如下:

              ① NodeFilter对象

            ② 接受或者拒绝某个特定节点的函数

 ② TreeWalker类型:有七个方法,一个属性

          nextNode()、previousNode()、parentNode()--转到当前节点的父节点、firstChild()--转到当前节点的第一个子节点、lastChild()--转到当前节点的最后一个子节点、nextSibling()--转到当前节点的下一个同辈节点、previousSibling()--转到当前节点的上一个同辈节点。

          currentNode属性:表示任何遍历方法在上一次遍历中返回的节点(可以修改遍历继续进行的起点)。

          使用document.createTreeWalker(root,whatToShow,filter,entityReferenceExpansion)创建TreeWalker对象

          注意NodeFilter.FILTER_SKIP和NodeFilter.FILTER_REJECT的区别

 可以不使用过滤器遍历li节点

 


版权声明:本文为wurourouzhang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。