template 标签内容只读存在于 content 属性中,必须用 clonenode(true) 克隆后使用;需置于 body 或 head 直接子级;克隆后须手动处理表单值、事件绑定和 id 唯一性;ie 完全不支持,无可靠 polyfill。

template 标签不是“隐藏的 div”,也不能直接插入或赋值给 innerHTML —— 它的内容永远只存在于只读的 content 属性中,且必须用 cloneNode(true) 才能复用。
template.content.cloneNode(true) 是唯一安全的克隆方式
直接 appendChild(template.content) 只能成功一次,第二次调用会静默失败(content 是 DocumentFragment,插入即移出)。常见错误包括漏写 true、误用 cloneNode(false) 或缓存 template.content 多次复用。
-
cloneNode(true):深克隆,带全部子节点和文本,可用 -
cloneNode(false):只克隆空 fragment 容器,无实际内容 - 不能提前保存
template.content变量反复使用,每次都要重新调用.cloneNode(true) - 批量渲染时,建议先创建
document.createDocumentFragment()中转,最后一次性插入,避免频繁重排
template 必须放在 body 或 head 的直接子位置
浏览器对 template 的位置有硬性解析规则。放错位置会导致内容被自动挪走、截断甚至丢弃,DOM 结构彻底失效。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- ✅ 正确:
<template id="card"><div>...</div></template> - ❌ 错误:
<table><template><tr><td></td></tr></template></table>→template会被提到<table> 外 <li>❌ 错误:<code><script><template></script>→ 解析失败,content为空 - ❌ 错误:
<div><template></template></div>→ 不合法嵌套,内容可能被忽略 - 表单控件需重设值:
clone.querySelector('input').value = data.value - 事件必须重新绑定:
clone.querySelector('button').addEventListener('click', handler),或改用父级事件委托 - ID 必须清除或重生成:
clone.querySelector('[id]').id = 'new-id-' + Date.now(),避免 DOM 冲突 -
<img src>不发请求、<script></script>不执行、<video autoplay></video>不播放——这些行为在克隆后才真正激活 - 现代项目:直接声明不兼容 IE,省去所有运行时兜底成本
- 必须兼容 IE:改用构建时预编译的字符串模板,如
const tpl = (d) => <div class="card">${d.name}</div>,配合textContent防 XSS - 不要尝试在运行时动态 patch
cloneNode—— 实际项目中极易漏掉边界情况,比如嵌套slot或样式作用域
克隆后必须手动处理表单、事件和 ID
模板里的 <input value="a"> 克隆出来仍是初始值;内联 onclick 不生效;id 重复会破坏 document.getElementById 查找逻辑。
IE 完全不支持 template,别信“一行兼容”
IE 11 及更早版本中,document.createElement('template').content 是 undefined,任何基于 content 的操作都会报错。所谓“简单 polyfill”无法完整模拟 DocumentFragment 行为和 cloneNode(true) 语义。
最常被忽略的不是怎么克隆,而是克隆之后对 id 的清理 —— 即便只渲染两个实例,重复 ID 也会让后续的 getElementById、CSS 选择器或 ARIA 关联出错。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










