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