江牧律师
首页
往期整理
  •   历史归档
  •   文章分类
  •   文章标签
关于我
江牧
文章
10
分类
2
标签
6
首页
往期整理
历史归档
文章分类
文章标签
关于我
技术学习
document.write()、textContent、innerText 与innerHTML的区别
发布于: 2024-10-9
最后更新: 2024-10-9
次查看
JavaScript
知识点
type
status
date
slug
summary
tags
category
icon
password

📝 主旨内容

document.write()与innerHTML的区别

document.write()是document对象中的方法,在页面中插入的位置为脚本元素script的位置,可以多次调用实现拼接。文档解析完再调用会覆盖原有内容,否则不会。

document.write()

notion image
我们先看这段代码
notion image
解析:
上面这段代码的效果是,利用window.onload方法在页面加载完成后再调用document.write()方法。因此页面原本的内容会被覆盖掉。
 
再看这段代码
notion image
解析:
在匿名函数结尾多加了一堆括号()将匿名函数变成了立即执行函数
此时匿名函数会立即执行,不会等待页面加载完成。
这意味着 document.write("做大做强,再创辉煌!") 会在当前上下文中立即执行,而不是等待页面加载完成。window.onload 会变成无效的事件绑定被设置为 undefined,因为函数已经执行完毕,返回值为 undefined。
由于script标签在body末尾,因此document.write() 中的内容被插入在页面末尾。
 

innerHTML

notion image
针对特定元素内容进行更改,不会覆盖其他元素的内容
notion image
notion image
notion image
 

总结:

ㅤ
document.write()
innerHTML
类型
document对象中的方法
存在于Element对象中的属性
插入位置
脚本元素script的位置
指定的元素内
拼接方法
多次调用
利用+=
覆盖问题
文档解析完再调用会覆盖,否则不会
直接调用会覆盖原内容
 

textContent、innerText 与innerHTML的区别

  • textContent 会获取除标签外的所有内容
  • innerText 会受到 css 的影响,仅会获取实际可以看到的内容,隐藏内容会被忽略
  • innerHTML 会获取所有内容,包括标签
直接用一段代码来展示
notion image
从结果里我们可以清晰的看出 textContent、innerText 和 innerHTML 的区别。
 

总结差异

  1. 行为区别
      • textContent 和 innerText 获取的是元素内容;innerHTML 获取的是元素的 html 文本
      • textContent 会获取所有元素的内容,包括 script 和 style 元素;innerText 不会
      • innerText 会受到 css 影响,不会返回隐藏内容;textContent 不会
      • 使用 innerHTML 设置内容,会将内容解析为 html,所以性能相对较差,还可能存在 XSS 攻击;而因为文本不会被解析,则 textContent 和 innerText 不会有这个问题,性能更好。
      • 因为 innerText 受样式影响,会触发重排,而 textContent 不会。
  1. 归属区别
      • textContent 是 Node 对象的属性
      • innerText 是 Element 对象的属性
      • innerHTML 是 HTMLElement 对象的属性
       

用法上的区别

  • textContent和innerText只能设置纯文本,innerHTML可以进行标签的生成
notion image
 

🤗 总结归纳

时间紧任务重,初学最重要的是掌握主干,像我这样钻研细节实属愚蠢。

📎 参考文章

  • https://blog.csdn.net/sunyctf/article/details/124873855
  • https://www.iszy.cc/posts/diff-innerhtml-innertext-textcontent/
  • https://www.bilibili.com/video/BV1s4411176S/?spm_id_from=333.337.search-card.all.click&vd_source=8ad3c3948eb6ed01e72cb5dfa3a3218f
  • 作者:江牧
  • 链接:https://lawyerjiang.top/article/key/js/1
  • 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章
解引用“指向空间已被释放的指针”,会得到怎样的值?
C语言中将数字0~9与对应字符相互转换
C/C++不能在子函数中求主函数中的数组长度
快速理解C语言指针和数组的关系
C语言中随机数的实现
记一次个人服务器的搭建过程起点
Loading...
目录
0%
📝 主旨内容document.write()与innerHTML的区别document.write()innerHTML总结:textContent、innerText 与innerHTML的区别总结差异用法上的区别🤗 总结归纳📎 参考文章
江牧
江牧
无限进步!
文章
10
分类
2
标签
6
最新发布
记一次个人服务器的搭建过程
记一次个人服务器的搭建过程
2025-4-28
document.write()、textContent、innerText 与innerHTML的区别
document.write()、textContent、innerText 与innerHTML的区别
2024-10-9
起点
起点
2024-10-9
解引用“指向空间已被释放的指针”,会得到怎样的值?
解引用“指向空间已被释放的指针”,会得到怎样的值?
2024-10-9
C语言中将数字0~9与对应字符相互转换
C语言中将数字0~9与对应字符相互转换
2024-10-9
C/C++不能在子函数中求主函数中的数组长度
C/C++不能在子函数中求主函数中的数组长度
2024-10-9
公告
-- 本网站正处于大规模装修建设中 --
目录
0%
📝 主旨内容document.write()与innerHTML的区别document.write()innerHTML总结:textContent、innerText 与innerHTML的区别总结差异用法上的区别🤗 总结归纳📎 参考文章
2022-2025 江牧.

江牧律师 | 无限进步!

Powered by NotionNext 4.7.4.