在学习 JavaScript 中,有很多同学分不太清 innerHTML 和 innerText 这两者。那么这篇文章中,w3cschool 小编来为大家介绍下innerHTML 和 innerText 有什么区别以及它们的用法有什么不同。

概述

innerHTML 是指从对象的起始位置到终止位置的全部内容,还包括 HTML 标签。

innerText 是指去掉标签的内容。

区别

我们直接用代码来看下它们的区别:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>innerHTML和innerText的区别- 编程狮(w3cschool.cn)</title>
</head>
<body>
	<div id="one">
         <p>这段话包括标签会被全部输出</p> 
	</div>
	<div id="two">
         <p>这段话输出部分不包含标签</p> 
	</div>
	<a href="javascript:alert(one.innerHTML)">innerHTML输出</a>
	<a href="javascript:alert(two.innerText)">innerText输出</a>
</body>
</html>

当我点击第一个链接时,出现的弹窗内容为“<p>这段话包括标签会被全部输出</p>”。

而当我点击第二个链接时,出现的弹窗内容为“这段话输出部分不包含标签”。并没有包括标签内容。

使用说明

在开发中,innerHTML 是符合 W3C 标准的,而 innerText 只适用于 IE 浏览器。所以还是尽可能的使用 innerHTML。

如果想要输出的内容不包括标签,可以先使用 innerHTML 取得内容,再用正则表达式去除 HTML 标签。如下:

<a href="javascript:alert(document.getElementById('two').innerHTML.replace(/<.+?>/gim,''))">去除HTML标签后的文本</a>

以上就是文章“innerHTML 和 innerText 有什么区别?用法有什么不同?”的全部内容。更多 JavaScript 学习请前往 w3cschool