news 2025/12/24 23:21:34

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/17 15:24:09

JavaScript DOM 原生部分(三):元素属性修改

文章目录一.修改标准 HTML 内置属性1.直接通过属性名操作( 推荐,更简洁 )2.使用 setAttribute() / getAttribute() ( 通用方法 )二.修改样式属性( style / classList )1.修改行内样式( element.style )2.修改类样式( classList ,推荐)三.修改自定义数据属性( data-*)四.特殊属性…

作者头像 李华
网站建设 2025/12/17 15:23:59

【VSCode量子硬件连接日志解密】:揭秘量子计算调试的幕后核心技巧

第一章&#xff1a;VSCode量子硬件的连接日志在现代量子计算开发中&#xff0c;Visual Studio Code&#xff08;VSCode&#xff09;已成为集成开发环境的首选。通过扩展插件与远程量子设备建立稳定连接&#xff0c;开发者能够实时提交量子电路并获取测量结果。连接过程中的日志…

作者头像 李华
网站建设 2025/12/20 8:09:14

案例解读 | 运维驱动业务,护航中国银行数字化转型

PART 01 项目背景 01客户简介 案例客户是中国银行某市分行。 02痛点分析 在金融行业数字化转型加速推进的背景下&#xff0c;该银行客户的数据中心系统架构日益复杂&#xff0c;业务多样性与服务连续性要求不断提升&#xff0c;亟需一套高效、智能化运维监控平台&#xff0c;以…

作者头像 李华
网站建设 2025/12/17 15:23:04

Mac 快捷键使用指南

Mac 电脑的快捷键可以极大提高工作效率&#xff0c;无论是日常办公、设计、编程还是浏览网页。本文整理了一些必备快捷键和实用技巧&#xff0c;帮助你更高效地使用 Mac。Finder 右键菜单复制路径打开 Finder&#xff0c;找到需要复制的文件夹右键点击文件夹 → 按住 Option (⌥…

作者头像 李华
网站建设 2025/12/17 15:22:18

选择排序--自学笔记

选择排序 学习目标&#xff1a; 1.选择排序的基本思想 2.二元选择排序 3.冒泡排序和选择排序的异同 4.复杂度分析 1.选择排序的基本思想 1.1基本思想 双重循环遍历数组&#xff0c;每经过一轮比较&#xff0c;找到最小或最大元素的下标&#xff0c;将其换至首位! 经过…

作者头像 李华
网站建设 2025/12/17 15:21:56

开发改了接口,经常忘通知测试,有什么好的解决方案吗?

不知道大家有没有同感&#xff0c;做接口测试麻烦的不是测试本身&#xff0c;而是接口它会变&#xff0c;更麻烦的不是接口变了&#xff0c;而是它变了而你不知道。等到你测完&#xff0c;开发才悠悠跟你说 ——“那个接口我改了点东西&#xff0c;你再看一眼哈”。 我那是看一…

作者头像 李华