《精通JavaScript》笔记——获取文本内容的通用函数

以前写过一篇博文《获取元素文本内容》,但功能过于简单,它只能获取元素自身所包含的文本内容,而对于它的子元素内的文本内容就无能为力了。今天在看《精通JavaScript》时看到了一个更好的方法,不仅能兼容各种浏览器,而且还可以提取所有子元素内的文本内容。代码如下:

function getText(e){
	var t="";

		// 如果传入的是元素,则继续遍历其子元素,
		// 否则假定它是一个数组
		e=e.childNodes || e;

		for(var j=0;j<e.length;j++){
			// 如果不是元素,追加其文本值
			// 否则,递归遍历所有元素的子节点
			t+=e[j].nodeType!=1?
			e[j].nodeValue:getText(e[j].childNodes);
		}

		// 返回匹配的文本
		return t;
	}
}

这样你就能拥有一个能获取任何元素文本内容的兼容方法,无论是在XHTML还是在XML文档中都能使用。

此条目发表在 前端 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>