当前位置: 首页 > news >正文

把html字符串转为可以被js操作的dom

在 JavaScript 中,您可以使用 DOMParser API 将 HTML 字符串转换为可操作的 DOM 节点。以下是具体步骤:

1. 创建 DOMParser 实例:

const parser = new DOMParser();

2. 使用 parseFromString() 方法解析 HTML 字符串:

const htmlString = '<div id="myDiv">Hello, world!</div>';
const doc = parser.parseFromString(htmlString, 'text/html');

parseFromString() 方法接收两个参数:

  • 第一个参数: 要解析的 HTML 字符串。
  • 第二个参数: 字符串的 MIME 类型,对于 HTML 而言,应该是 'text/html'

3. 访问解析后的 DOM 节点:

解析后的文档存储在 doc 变量中,您可以像操作任何其他 DOM 对象一样操作它。例如,您可以使用 getElementByIdquerySelector等方法访问特定的节点:

const myDiv = doc.getElementById('myDiv');
console.log(myDiv.textContent); // 输出: "Hello, world!"

完整示例:

const htmlString = `
<div id="container">
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</div>
`;const parser = new DOMParser();
const doc = parser.parseFromString(htmlString, 'text/html');const container = doc.getElementById('container');
console.log(container.querySelector('h1').textContent); // 输出:"This is a heading"// 修改 DOM
container.querySelector('p').textContent = 'This text has been changed!';
console.log(container.innerHTML); // 输出修改后的 HTML

将解析后的 DOM 插入到现有页面中:

请注意,DOMParser 创建的文档片段是独立于当前文档的。如果您想将解析后的 DOM 插入到现有的页面中,可以使用 appendChild 或 insertBefore 等方法。 

const targetElement = document.getElementById('target'); // 找到要插入的目標元素
targetElement.appendChild(doc.body.firstChild); // 将解析后的第一个元素插入到目标元素中

希望以上信息能帮助您!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【实现100个unity特效之17】在unity中使用shader和ShaderGraph分别实现模糊特定层,高斯模糊效果
  • leetcode数论(2280. 表示一个折线图的最少线段数)-几何
  • 开发学习日记1
  • SQL布尔盲注
  • 如何利用 ChatGPT 提高工作效率?
  • 【React】详解 App.js 文件
  • Vue 3+Vite+Eectron从入门到实战系列之一环境安装篇
  • 群晖NAS安装Video Station结合内网穿透实现远程访问本地存储的影音文件
  • Android中的LowMemoryKiller机制
  • TensorFlow和Pytorch是什么?干什么用的?
  • 设计模式 由浅入深(待完结)
  • Java 自定义注解 笔记总结(油管)
  • 【Go】通过反射解析对象tag信息,实现简易ORM
  • llama factory 训练 TensorBoard 可视化
  • 【C++】——Vector的模拟实现
  • 网络传输文件的问题
  • hexo+github搭建个人博客
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • IDEA常用插件整理
  • Linux各目录及每个目录的详细介绍
  • Mybatis初体验
  • MySQL QA
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PAT A1092
  • React+TypeScript入门
  • 自定义函数
  • 你对linux中grep命令知道多少?
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 透过事物看本质的能力怎么培养?
  • (02)vite环境变量配置
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (7)svelte 教程: Props(属性)
  • (javaweb)Http协议
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net 4.0发布后不能正常显示图片问题
  • .net6使用Sejil可视化日志
  • .net对接阿里云CSB服务
  • .NET基础篇——反射的奥妙
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .so文件(linux系统)
  • ::before和::after 常见的用法
  • @Service注解让spring找到你的Service bean
  • [2016.7 test.5] T1
  • [ACP云计算]易混淆知识点(考题总结)
  • [bzoj2957]楼房重建
  • [C++基础]-初识模板
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [CF482B]Interesting Array