innerHTML\innerText

document.write  和 innerHTML :

document.write 重绘 整个页面,innerHTML 重绘页面的一部分。

为什么 js中 不推荐使用 innerHTML?

因为 innerHTML 每次修改内容 都会刷新,慢。( 不明白 这个“慢”是指要刷新,所以 更新数据慢吗?)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<span id="nishichu"><p>你是猪啊</p></span>
	<span id="nicaishizhu"><p>你才是猪<p></span>
	<script type="text/javascript">
		document.getElementById('nishichu').innerHTML='你他妈说谁是猪';
		document.getElementById('nicaishizhu').innerText='<p>我说你是猪,你就是猪!</p>';
	</script>
</body>
</html>

(1)
document.getElementById('nishichu').innerHTML='<p>你他妈说谁是猪</p>';
<span id="nishichu">你是猪啊</span>  变为:
<span id="nishichu"><p>你他妈说谁是猪</p></span>
(2)
这次去掉<p> 标签
变成:<span id="nishichu">你他妈说谁是猪</span>
还是覆盖了
(3)
这次试试 能不能覆盖标签
变成:
<span id="nishichu">你他妈说谁是猪</span>
哇哈哈!好强啊,标签也给覆盖了。

innerText:
document.getElementById('niciahsizhu').innerText='<p>我说你是猪,你就是猪!</p>';    
变成:
<p>我说你是猪,你就是猪!</p>
所以说  innerText不能 识别标签,它把 标签当做 文本  
但是 它也覆盖<span>标签 里面内容了
试试它能不能 覆盖 标签
不知道 为啥这样:
<span id="nicaishizhu">&lt;p&gt;我说你是猪,你就是猪!&lt;/p&gt;</span>
其实 它不能覆盖 <p>标签, 这样色的:
<span><p>我说你是猪,你就是猪!</p></span>

总结:
(1)当 两个都用来 插入内容时,并且 插入标签时,innerHTML 插进的是标签,innerText 把标签 当文本;并且,两个都能 覆盖内容,但 innerHTML  能覆盖 被插入内容的标签  里面的标签,innerText  只能覆盖文本,不能覆盖 标签;

两者 插入内容时,= 字符串,就是 dom.innerHTML = 'xxx'; dom.innerText = 'xxx';

(2)当用 dom.innerHTML 获取内容时,可以 获取到 标签;

dom.innerText 只能获取到 文本;

 

醉了,网上 一个好点儿的解释 都找不到。垃圾 baidu!

上一篇:javascript – Firefox的textContent与Chrome的innerText不匹配


下一篇:JS及Dom练习 | 页面滚动文字