Node的textContent属性

有时需要查询纯文本形式的元素内容,或者在文档中插入纯文本。标准的方法是用Node的textContent属性来实现:



var para=document.getElementsByTagName("p")[0];

//文档中第一个<p>

var text=para.textContent;

//文本是"This is a simple document."

para.textContent="Hello World!";

//修改段落内容


textContent属性在除了IE的所有当前的浏览器中都支持。在IE中,可以用Element的innerText属性来代替。


下面简单实现一个textContent()函数,它递归地遍历元素的子节点,然后连接后代节点中所有的Text节点的文本。为了理解代码,回想一下nodeValue属性(定义在Node类型中),它保存Text节点的内容。


//返回元素e的纯文本内容,递归进入其子元素

//该方法的效果类似于textContent属性

function textContent(e){

    var child,type,s="";//s保存所有子节点的文本

    for(child=e.firstChild;child!=null;child=child.nextSibling){

        type=child.nodeType;

        if(type===3){//Text节点

            s+=child.nodeValue;

        } else if (type===1){//递归Element节点

            s+=textContent(child);

        }

    }

    return s;

}


textContent属性就是将指定元素的所有后代Text节点简单地串联在一起。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值