代码之家  ›  专栏  ›  技术社区  ›  T_t

通过javascript获取网页的elementnode的textnode

  •  2
  • T_t  · 技术社区  · 14 年前

    在网页中,我想获取textnode中的所有可见文本。我不想将所有结果放入一个数组中。我的意思是,当我遇到可见文本时,我将执行其他操作。 我怎么能做到呢?

    1 回复  |  直到 14 年前
        1
  •  2
  •   aaaaaaaaaaaa    14 年前

    我想你想要这样的东西:

    <script type="text/javascript">
    function textnodes(){
        function iterate(node){
            var nodes=node.childNodes
            var len=nodes.length
            for(var a=0;a<len;a++){
                if(nodes[a].nodeType==3){
                    if(!nodes[a].nodeValue.match(/^[\s]*$/)){
                        alert(nodes[a].nodeValue) //Insert your code here.
                    }
                }
                else{
                    if(nodes[a].nodeName.toLowerCase()!="script"){
                        iterate(nodes[a])
                    }
                }
            }
        }
        iterate(document.body)
    }
    textnodes()
    </script>
    

    脚本可能有点过于热心,你会遇到很多不可见的文本节点,如果你不需要它们,你可以把它们分类。

    编辑:修改为排序不可见的节点,因为您特别要求只显示节点。