js 遍历dom所有的文本

ExpandedBlockStart.gif 代码
<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >

< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >< title > New Page < / title>
< / head>
< script type = " text/javascript " >
<!--
    
function  allNodeText(e){
        
var  e  =  ( typeof  e  ==   " string " ?  document.getElementById(e) : e;        
        
var  arrText  =  [];
        getStrings(e, arrText);
        
return  arrText.join( "" );

        
function  getStrings(e, arrText){
            
if (e.nodeType  ==   3 ){
                arrText.push(e.data);                
            }
else   if (e.nodeType  ==   1 ){
                
for ( var  m  =  e.firstChild; m  !=   null ; m  =  m.nextSibling){
                    getStrings(m, arrText);
//  循环体
                }
            }
        }
        
/* **********************************************************
         * 主要讲解下getStrings这个递归方法获取所有节点的流程
         *首先,传入的节点为Node1,nodeType==1走入 for分支 m = e.firstChild节点为nodeText1,
         *进入getStrings递归由于 nodeType==3则添加数组中结束,由于循环体结束,则便运行条件
         *m = m.nextSibling.nodeText1, 的兄弟节点便是Node2的span,span又走nodeType==1分支
         *取得firstChild为 NodeText2然后进入递归到nodeType==3便再次结束递归走m=m.nextSibling
         *一直到所有的节点都走完,然后走入第二个节点同上步骤.
         **********************************************************
*/
    }
// -->
< / script>
< body onload = " alert(allNodeText('Node1')) " >
< span id = " Node1 " >
    NodeText1,
    
< span id = " Node2 " >
        NodeText2,
        
< b >
            NodeText3,
        
< / b>
         < i >
            NodeText4,
        
< / i>
     < / span>
     < span id = " Node3 " >
        NodeText5
    
< / span>
< / span>
< / body>
< / html>


转载于:https://www.cnblogs.com/lishenglyx/archive/2010/04/15/1712375.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值