news 2026/2/3 1:15:50

JavaScript DOM 原生部分(二):元素内容修改

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript DOM 原生部分(二):元素内容修改

文章目录

  • 一.修改纯文本内容( textContent / innerText )
    • 1.textContent(推荐)
    • 2.innerText
  • 二.修改 HTML 内容( innerHTML )
  • 三.修改表单元素的值( value )
  • 四.替换元素本身( outerHTML )
  • 关键注意事项
  • 总结

在 JavaScript 中,修改 DOM 元素的内容是常见操作,主要分为修改文本内容修改 HTML 内容修改表单元素的值三类,以下是详细的实现方式:

一.修改纯文本内容( textContent / innerText )

这两个属性用于操作元素的文本内容,区别在于处理空白和隐藏元素的方式不同.

1.textContent(推荐)

  • 作用: 获取/设置元素的所有文本内容(包括子元素的文本,忽略 HTML 标签,保留空格和换行).
  • 特点: 性能更好,支持所有现代浏览器,会将 HTML 标签作为普通文本处理(避免 XSS 攻击).
// HTML: <div id="box">Hello <span>World</span></div>constbox=document.getElementById('box');// 获取文本内容: "Hello World"console.log(box.textContent);// 设置文本内容(覆盖原有内容)box.textContent='你好,JavaScript';// 结果: <div id="box">你好,JavaScript</div>// 也可追加文本(拼接原有内容)box.textContent+='!';// 结果: <div id="box">你好,JavaScript!</div>

2.innerText

  • 作用: 获取 / 设置元素的可见文本内容(受 CSS 样式影响,如隐藏元素的文本不会被获取,且会合并空白).
  • 特点: 兼容性好,但性能略低于textContent.
// HTML: <div id="box">Hello <span style="display: none;">隐藏文本</span> World</div>constbox=document.getElementById('box');// 获取可见文本: "Hello World"(忽略隐藏文本和多余空格)console.log(box.innerText);// 设置文本内容box.innerText='Hello DOM';// 结果: <div id="box">Hello DOM</div>

二.修改 HTML 内容( innerHTML )

  • 作用: 获取/设置元素的HTML 内容(包括标签),可直接插入 HTML 结构.
  • 注意: 使用innerHTML时需注意XSS 攻击风险(避免插入用户输入的未过滤内容).
// HTML: <div id="box">初始内容</div>constbox=document.getElementById('box');// 获取 HTML 内容: "初始内容"console.log(box.innerHTML);// 设置 HTML 内容(覆盖原有内容)box.innerHTML='<h3>标题</h3><p>这是一段带标签的内容</p>';// 结果: <div id="box"><h3>标题</h3><p>这是一段带标签的内容</p></div>// 追加 HTML 内容(拼接原有内容)box.innerHTML+='<span>追加的内容</span>';

三.修改表单元素的值( value )

对于<input><textarea><select>等表单元素,使用value属性修改其值.

// 1. 单行输入框// HTML: <input type="text" id="username" value="初始值">constusername=document.getElementById('username');username.value='张三';// 设置值为"张三"// 2. 密码框// HTML: <input type="password" id="pwd">constpwd=document.getElementById('pwd');pwd.value='123456';// 3. 文本域// HTML: <textarea id="content">初始文本</textarea>constcontent=document.getElementById('content');content.value='这是文本域的新内容';// 4. 下拉选择框// HTML:// <select id="city">// <option value="beijing">北京</option>// <option value="shanghai">上海</option>// </select>constcity=document.getElementById('city');city.value='shanghai';// 选中"上海"选项

四.替换元素本身( outerHTML )

  • 作用: 获取/设置元素及其所有内容的 HTML 结构(包括元素自身标签).
  • 注意: 设置后原元素会被新的 HTML 结构替换.
// HTML: <div id="box">旧内容</div>constbox=document.getElementById('box');// 获取 outerHTML: "<div id="box">旧内容</div>"console.log(box.outerHTML);// 替换元素本身box.outerHTML='<p id="newBox">新的p元素</p>';// 结果: <p id="newBox">新的p元素</p>(原div被替换)

关键注意事项

  1. XSS 安全问题

    • 若内容包含用户输入,优先使用textContent/text()(会转义 HTML 标签),避免使用innerHTML/html()导致 XSS 攻击.
    • 示例: 用户输入<script>alert('攻击')</script>,textContent会将其作为普通文本显示,而innerHTML会执行脚本.
  2. 性能考量

    • 频繁修改innerHTML会导致浏览器反复解析 DOM,性能较低(可先拼接字符串再一次性设置).
    • 对于大量文本修改,textContentinnerText更快.
  3. 元素存在性检查

    • 修改内容前建议检查元素是否存在,避免报错:
      constbox=document.getElementById('box');if(box){// 检查元素是否存在box.textContent='新内容';}
  4. 表单元素的特殊情况

    • 对于<input type="file">,value属性只读,无法通过 JavaScript 修改(出于安全考虑).

总结

场景推荐方法
修改纯文本内容textContent
修改带标签的 HTML 内容innerHTML( 谨慎使用 )
修改表单元素值value
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/30 0:43:47

JavaScript DOM 原生部分(五):事件绑定

文章目录一.传统事件绑定(内联绑定/属性绑定)1.HTML 内联绑定(不推荐,结构与行为耦合)2.DOM 属性绑定(简单场景可用)二.事件监听方式(addEventListener,推荐)1.基本语法2.基本使用3.移除事件监听(removeEventListenera)4.事件传播模式三.常用事件类型四.事件对象(event)常用事件…

作者头像 李华
网站建设 2026/1/30 4:37:34

从大模型到多模态,图文混排Agent彻底起飞~

本文详细解析了GLM 4.6V多模态大模型的图文混排能力&#xff0c;介绍了模型如何识别图片精确位置、处理多张图片输入并持续迭代优化。作者通过复刻相关代码&#xff0c;展示了多模态Agent的工作原理&#xff0c;强调模型从"读"信息到"看"信息的转变&#x…

作者头像 李华
网站建设 2026/1/30 18:07:28

【量子算法开发新境界】:VSCode高效优化技巧全揭秘

第一章&#xff1a;量子算法开发环境的现状与挑战当前&#xff0c;量子算法开发环境正处于快速演进阶段&#xff0c;尽管已有多个成熟框架支持量子程序设计&#xff0c;但开发者仍面临工具链不统一、硬件访问受限和模拟性能瓶颈等核心挑战。主流平台如Qiskit、Cirq和PennyLane提…

作者头像 李华
网站建设 2026/1/30 8:15:39

【RealEarthStudio】安装并配置Redis数据库

安装并配置Redis数据库 引言一、主要功能二、实现步骤2.1 Windows版本Redis下载2.2 开始安装Redis2.3 检验安装效果 引言 计算机专业硕士在读&#xff0c;主要研究方向是特定目标大斜视角目标检测与定位。因为要做的是特定目标&#xff0c;公开数据集较少&#xff0c;经过多方…

作者头像 李华
网站建设 2026/1/30 8:11:31

VSCode + Qiskit智能提示配置全攻略(从零到自动补全的终极指南)

第一章&#xff1a;VSCode Qiskit 的代码补全 在量子计算开发中&#xff0c;高效的编码体验离不开强大的代码补全功能。Visual Studio Code&#xff08;VSCode&#xff09;结合 Qiskit 开发插件&#xff0c;为开发者提供了智能提示、语法高亮和自动补全能力&#xff0c;显著提升…

作者头像 李华
网站建设 2026/1/29 23:04:24

GEO关键词AI排名优化哪家企业好

GEO关键词AI排名优化&#xff1a;至灵企业服务——您的理想之选在当今数字化营销竞争日益激烈的时代&#xff0c;企业要想在搜索引擎中脱颖而出&#xff0c;吸引更多潜在客户&#xff0c;关键词排名优化就显得尤为关键。特别是对于那些希望精准定位特定地理区域&#xff08;GEO…

作者头像 李华