遍历某一元素下所有的文本节点

原理:所有的node都有一个nodeType属性表示节点类型,文本节点类型为3,配合递归能很方便的遍历一个节点下的所有文本节点。

 function getTextNodesDeep(elem, opt_filter){
    var textNodes = [];
    if(elem){
      let nodes = elem.childNodes, i = nodes.length;
      for(;i--;){
        let node = nodes[i],
            nodeType = node.nodeType;
        if(nodeType === 3){//文本节点
          if(!opt_filter || opt_filter(node, elem)){
            textNodes.push(node);
          }
        }else if(nodeType === 1){//元素节点
          textNodes = textNodes.concat(getTextNodesDeep(node, opt_filter))
        }
      }
    }
    return textNodes;
  }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容