如何保存一个<模板>供二次使用
How can I save a <template> for a second use?
我试图在网页中正确使用HTML5模板。然而,我发现当我把一个模板的内容放到网页的某个部分时,模板被清空了,同样的动作不能再执行了。我如何确保模板不被清空,或者我应该使用不同的技术?
HTML:
<div>
<button id="replace-button">Click to show template</button>
<div id="holder"></div>
</div>
<template id="my-template">Hooray! Now, note that when you try again, this area will be blank.</template>
JavaScript: $("#replace-button").click(replaceWithTemplate);
function replaceWithTemplate(event) {
$("#holder").html($("#my-template")[0].content);
}
实时演示:http://jsfiddle.net/Supuhstar/y33a9/
"如何确保模板不被清空?"
在您使用模板的content
之后,模板变成了"活的"(正如Eric所说的)。您无法读取"活动"模板的content
。因此,如果您想重用一个模板,您应该克隆模板的content
,并且从一开始就不要激活原始模板。
jQuery
正如Will所提到的,您可以使用jQuery的.clone()
方法来完成此操作。您也可以使用.html()
方法获得相同的结果。(小提琴)
正如Dan Davis在评论中提到的,您还可以使用模板node
的.cloneNode(true)
方法来执行模板的深度复制。因此,您不是激活原始模板,而是激活克隆模板。(小提琴)
或者, MDN Docs使用.importNode()
复制模板content
只需添加clone(),然后您可以再次使用它。
$("#replace-button").click(function(event) {
$("#holder").html($("#my-template").clone()[0].content);
});
相关文章:
- AngularJS:控制器中的函数被模板多次调用
- 使用jsreport在一个页面上多次呈现同一模板
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- 挖空模板:afterRender 触发两次,因为名称/数据是耦合的可观察量
- 在给定曲线的最大高度的情况下,获取二次曲线的 Y 值
- 模板函数在加载网页时运行两次
- 在HTML5画布上慢慢绘制二次曲线
- 二次曲线:替换鼠标单击的键盘笔划
- 如何在画布上绘制文本,该文本遵循使用二次曲线方法绘制的二次曲线
- 隐藏菜单上的内容链接二次点击
- 如何保存一个<模板>供二次使用
- 面料JS:我需要删除一个二次曲线的箭头工具后,一旦创建在画布上
- 二次曲线:我能确定顶点是什么吗?
- 二次曲线长度
- Js根据相同列的id按不同列进行二次排序
- 什么是错误的我的代码在JavaScript的二次公式
- 二次JavaScript错误
- 二次损坏:Express.js没有看到错误页面.主要损伤:?新人'Mongoose的错误
- 如何用抛物线找到二次曲线的控制点
- 用二次贝塞尔曲线和三次贝塞尔曲线绘制椭圆