一、innerHTML
(1)注意事项
(2)实体字符转换
pre标签可以把实体字符转换成标签
(3)执行过程
(4)安全问题
HTML5和现代的新的浏览器都会阻止这种通过innerHTML嵌入script脚本的程序执行
在dom节点的基础上去追加html字符串,会破坏原来的dom节点的引用,但是追加了以后再重新获取节点就不会被破坏
插入纯文本的时候,就不要使用innerHTML
(5)优化方案
这样就只是把一个字符串放进了一个dom节点里,这个节点是在内存里面的,并没有在document文档
二、textContent
它只会将文本插入到元素内部去,性能比innerHTML要好
它不会被解析为dom节点,只解析为文本节点
三、innerText
给元素渲染文本节点
innerText:会忽略标签、style样式属性,显示文本
textContent:会忽略标签,保留style属性,显示所有非标签
innerText与textContent的区别:
textContent:
- textContent获取所有元素的内容(包括script、style)
innerText:
- 只会获取给人看的内容
- 会受到CSS的影响,会导致reflow
四、总结
innerHTML:性能不好,可以提取文本及html标签
innerText:性能好,只能提取文本,会剔除html标签及script、style内容,受css影响
textContent:性能好,可以提取文本及script、style内容,会剔除html标签,不受css影响