javascript获取节点的文本值

来源:互联网 发布:腾讯数据分析岗 编辑:程序博客网 时间:2024/06/08 11:09

javascript获取节点的文本值

我们知道通过浏览器自带的innerHTML属性能够获取节点的所包含的字符串的值,比如有如下节点:

<div id="test"><strong>i'm strong</strong></div>

通过 

var obj=document.getElementById("test");alert(obj.innerHTML);//返回的值是<strong>i'm strong</strong>

 

如果我想得到节点的文本值,也就不包括标签以为的字符串,怎么办呢。这里的文本值是:i'm strong

复制代码
//非Mozilla浏览器:obj.innerText;//其他的浏览器obj.firstChild.nodeValue;
复制代码

先提供一个通用的方法来解决兼容问题:

完整代码如下:

 

代码
复制代码
<html><head><title>title</title></head><body><div id="test"><strong>i'm strong</strong></div><script type="text/javascript"> var obj=document.getElementById("test"); //兼容浏览器获取节点文本的方法 function text(e) { var t=""; //如果传入的是元素,则继续遍历其子元素 //否则假定它是一个数组 e=e.childNodes||e; //遍历所有子节点 for(var j=0;j<e.length;j++){ //如果不是元素,追加其文本值 //否则,递归遍历所有元素的子节点 t+=e[j].nodeType!=1? e[j].nodeValue:text(e[j].childNodes); } //返回区配的文本 return t; } alert(text(obj))</script></body></html>
原创粉丝点击