原文地址为:
javascript获取节点的文本值
转载请注明本文地址: javascript获取节点的文本值
我们知道通过浏览器自带的innerHTML属性能够获取节点的所包含的字符串的值,比如有如下节点:
<
div
id
="test"
><
strong
>
i'm strong
</
strong
></
div
>
通过
var
obj
=
document.getElementById(
"
test
"
);
alert(obj.innerHTML); // 返回的值是<strong>i'm strong</strong>
alert(obj.innerHTML); // 返回的值是<strong>i'm strong</strong>
如果我想得到节点的文本值,也就不包括标签以为的字符串,怎么办呢。这里的文本值是:i'm strong
//
非Mozilla浏览器:
obj.innerText;
// 其他的浏览器
obj.firstChild.nodeValue;
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 >
< 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 >
转载请注明来自:http://www.cnblogs.com/wbkt2t/
转载请注明本文地址: javascript获取节点的文本值