HTML 转 JS 代码
我要提建议把 HTML 片段转成创建同等 DOM 的 JavaScript 代码:可选 createElement 逐节点构建或 innerHTML 赋值,本地解析。
相关工具
这个工具是做什么的
手写 document.createElement 一堆嵌套节点很容易出错,尤其是从设计稿或后端返回的 HTML 片段改成脚本构建时。本工具用本机内置的 HTML 解析器读入片段,再生成创建同等 DOM 的 JavaScript 代码:可以逐节点输出 createElement 与 setAttribute,也可以直接给出 innerHTML 赋值语句;容器选择器可以指定,默认挂到 document.body。解析结果反映浏览器实际构建的 DOM —— 自动闭合标签、修正非法嵌套这类情况都会体现出来。全部在本地完成。
使用方法
- 把 HTML 片段粘贴进输入框(可以带缩进与换行)。
- 选择输出方式:「createElement 逐节点构建」或「innerHTML 赋值」。
- 需要挂到指定容器时填写选择器(如 #app);留空则使用 document.body。
- 点击「生成代码」,复制结果直接粘进项目。
常见问题
- 两种输出方式怎么选?
- createElement 方式逐节点建元素、设置属性与文本,便于插入事件监听或继续复用节点引用,适合脚本里构建结构;innerHTML 方式只输出一行赋值,代码最短、可读性好,但会替换容器内原有内容,且不会绑定任何事件处理。
- 为什么生成的代码里多了 class / id 之外的 setAttribute?
- class 与 id 会直接写成 element.className / element.id(更易读),disabled、checked 这类布尔属性写成 element.disabled = true,其余属性(含 data-*、aria-*)统一用 setAttribute 输出,保证与源 HTML 等价。
- 空格和换行会怎样?
- 仅含空白字符的文本节点会被忽略,因此缩进与换行不会污染生成代码;元素之间的实际文本(例如链接文字)会保留,并按 JS 字符串规则转义。
- 支持把 JS 代码再转回 HTML 吗?
- 不支持,这是刻意取舍:反向转换意味着执行任意脚本,安全风险不可控。如果要还原 HTML,直接用 innerHTML 模式输出的字符串即可。
- 会上传我的 HTML 吗?
- 不会。解析与代码生成都在本机用本地引擎完成,没有网络请求。