textContent:设置或者返回指定节点中的文本内容。谷歌、火狐支持,IE8以及更早版本不支持。
innerText:设置或者返回指定节点中的文本内容。谷歌、火狐、IE8都支持。
innerHTML:设置或者返回指定节点中的所有内容。
获取文本内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 200px; height: 200px; border: 2px solid red; } </style> </head> <body> <input type="button" value="获取文本"/> <div> 我在div里。 <p>我是一个p1</p> <p>我是一个p2</p> <p>我是一个p3</p> <p>我是一个p4</p> </div> <script> document.getElementsByTagName("input")[0].onclick = function(){ console.log(document.getElementsByTagName("div")[0].textContent); console.log(document.getElementsByTagName("div")[0].innerText); console.log(document.getElementsByTagName("div")[0].innerHTML); } </script> </body> </html>
设置文本内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 200px; height: 150px; border: 2px solid red; margin-top: 10px; } </style> </head> <body> <input type="button" value="设置文本"/> <div> 我在div里。 <p>我是一个p1</p> <p>我是一个p2</p> <p>我是一个p3</p> </div> <div> 我在div里。 <p>我是一个p1</p> <p>我是一个p2</p> <p>我是一个p3</p> </div> <div> 我在div里。 <p>我是一个p1</p> <p>我是一个p2</p> <p>我是一个p3</p> </div> <script> document.getElementsByTagName("input")[0].onclick = function(){ document.getElementsByTagName("div")[0].textContent = "我是新的内容,<p>我是一个段落</p>"; document.getElementsByTagName("div")[1].innerText = "我是新的内容,<p>我是一个段落</p>"; document.getElementsByTagName("div")[2].innerHTML = "我是新的内容,<p>我是一个段落</p>"; } </script> </body> </html>
设置前
设置后
注意:如果这个属性在浏览器中不支持,那么这个属性的类型是undefined;因此判断这个属性的类型是不是undefined,就知道浏览器是否支持。
兼容代码:
设置任意标签中的任意文本内容
//设置任意标签中的任意文本内容 function setInnerText(element, text){ //判断浏览器是否支持该属性 if(typeof element.textContent == "undefined"){//不支持 element.innerText = text; }else{//支持 element.textContent = text; } }
获取任意标签中的文本内容
//获取任意标签中的文本内容 function getInnerText(element){ if(typeof element.textContent == "undefined"){ return element.innerText; }else{ return element.textContent; } }
总结:
textContent、innerText 获取标签内的文本内容,如果标签中还有标签,也可以获取到里面的标签的文本内容,但获取不到标签。
innerHTML 是获取标签中的所有内容,包括标签内部的标签。
textContent、innerText主要是设置文本内容,没有标签效果。
innerHTML 主要是在标签中设置文本内容,或是设置新的标签内容,有标签效果。
推荐使用innerHTML设置文本内容。