zoukankan      html  css  js  c++  java
  • js遍历

    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()

  • 相关阅读:
    java运行时异常与一般异常有何异同?
    B+树原理及mysql的索引分析
    ibatis in的用法
    brython的问题
    限流算法的原理
    Java8的CompletionService使用与原理
    命令行相关快捷键
    Java8 异步编排类CompletableFuture
    分布式系统ID生成方案
    curl 命令简介
  • 原文地址:https://www.cnblogs.com/vhyc/p/5883057.html
Copyright © 2011-2022 走看看