软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > Web前端 > Ajax/JavaScript > JavaScript获取节点的文本值

JavaScript获取节点的文本值

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

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
<div id="test"><strong>i'm strong</strong></div>

通过

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
var obj=document.getElementById("test");
alert(obj.innerHTML);//返回的值是<strong>i'm strong</strong>

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

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
//非Mozilla浏览器:
obj.innerText;
//其他的浏览器
obj.firstChild.nodeValue;

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

完整代码如下:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
<html>
<head>
<title>JavaScript获取节点的文本值-liehuo.net</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/

    相关阅读
    网友评论
    栏目导航
    推荐软件