本文介绍如何通过原生 javascript(不依赖 jquery)准确提取任意 dom 元素内部的所有嵌套 html 标记为字符串,解决 innerhtml 无法保留父级标签、outerhtml 又包含自身标签的问题。
本文介绍如何通过原生 javascript(不依赖 jquery)准确提取任意 dom 元素内部的所有嵌套 html 标记为字符串,解决 innerhtml 无法保留父级标签、outerhtml 又包含自身标签的问题。
在实际开发中,常需将某个元素(如 <div id="foo">)内部的全部结构序列化为 HTML 字符串,用于动态渲染、日志记录或服务端传输。但初学者容易混淆几个关键属性:
✅ 正确答案是:若目标是获取 <div id="foo"> 开始标签与结束标签之间的全部原始 HTML(即“所有 markup between two tags”),应使用 element.innerHTML。
例如:
<div id="foo"> <ul> <li>item1</li> <li>item2</li> </ul></div>
const foo = document.getElementById("foo");const markup = foo.innerHTML; // ✅ 正确结果:// "<ul>n <li>item1</li>n <li>item2</li>n </ul>"
⚠️ 注意事项:
立即学习“Java免费学习笔记(深入)”;
总结:要精确获取某元素起始与结束标签之间的全部 HTML 字符串,请始终优先使用 element.innerHTML;outerHTML 适用于需要连同该元素自身一起导出的场景,而非题设需求。