firefox 不支持 innerText 的解决方法

方法就是开发一个通用的函数来获取任意元素的文本内容,而不用考虑元素究竟嵌套了几层.

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <script type="text/javascript">
 6 function displayInfo(){
 7     var x = document.getElementById("test");
 8     //alert(x.innerText);
 9     alert(text(x));
10 }
11 function text(e){
12     var t = "";
13     //如果传入的是元素,则继续遍历其子元素
14     //否则假定它是一个数组
15     e = e.childNodes || e;
16     //遍历所以子节点
17     for (var j = 0; j < e.length; j++){
18         //如果不是元素,追加其文本值
19         //否则,递归遍历所有元素的子节点
20         t += e[j].nodeType != 1 ? e[j].nodeValue : text(e[j].childNodes);
21         //t += ( e[j].nodeType != 1 )? e[j].nodeValue : text(e[j].childNodes);
22         
23     }
24     //返回匹配的文本
25     return t;
26 }
27 </script>
28 </head>
29 <body>
30 <input type="button" value="测试" onclick="displayInfo();"/><br>
31 <div id="test">这里只是一段测试文字.</div>
32 </body>
33 </html>
原文地址:https://www.cnblogs.com/vincent_ds/p/2613704.html