JS基础篇--innerHTML,innerText,outerHTML,textContent的用法与区别

示例html代码:javascript

<div id="test">
   <span style="color:red">test1</span> test2
</div>

得到id为test的DOM对象,下面就不一一获取了。html

var test = document.getElementById('test');

test.innerHTML

描述:也就是从对象的起始位置到终止位置的所有内容,包括Html标签。java

上例中的test.innerHTML的值也就是“<span style="color:red">test1</span> test2 ”。node

test.innerText

描述:从起始位置到终止位置的内容, 但它去除Html标签 。浏览器

上例中的test.innerText的值也就是“test1 test2”, 其中span标签去除了。spa

test.outerHTML

描述:除了包含innerHTML的所有内容外, 还包含对象标签自己。code

上例中的test.outerHTML的值也就是<div id="test"><span style="color:red">test1</span> test2</div>htm

完整示例:对象

<div id="test">
   <span style="color:red">test1</span> test2
</div>

<a href="javascript:alert(test.innerHTML)">innerHTML内容</a>
<a href="javascript:alert(test.innerText)">inerText内容</a>
<a href="javascript:alert(test.outerHTML)">outerHTML内容</a>

结果:ip

//test.innerHTML结果:<span style="color:red">test1</span> test2
//test.innerText结果:test1 test2
//test.outerHTML结果:<div id="test"><span style="color:red">test1</span> test2</div>

test.textContent

描述:textContent 属性设置或返回指定节点的文本内容,以及它的全部后代。

提示:有时,此属性可用于取代 nodeValue 属性,可是请记住此属性同时会返回全部子节点的文本。

获得的结果跟innerText的结果是同样的。

注释:Internet Explorer 8 以及更早的版本不支持此属性。

兼容性

innerHTML全部浏览器兼容;innerTextouterHTML虽然主流浏览器,如谷歌,火狐,IE7-IE11,QQ等都已支持(这里提到的谷歌火狐等都是最新浏览器的版本),可是W3C的标准属性就是innerHTML,所以,尽量地去使用innerHTML,而少用innerTextouterHTML

相关文章
相关标签/搜索