【发布时间】:2015-01-14 14:52:45
【问题描述】:
我有一个模板:
function useIt() {
var content = document.querySelector('template').content;
// Update something in the template DOM.
var span = content.querySelector('span');
span.textContent = parseInt(span.textContent) + 1;
document.querySelector('#container').appendChild(
document.importNode(content, true));
}
<button onclick="useIt()">Use me</button>
<div id="container"></div>
<template>
<div>Template used: <span>0</span></div>
<script>alert('Thanks!')</script>
</template>
您可以试试代码here。 此代码基本上将模板(html5 模板不会在您的屏幕上呈现)复制到另一个 div 中。这允许您重用 DOM。
问题:“span.textContent = parseInt(span.textContent) + 1;”这一行直接更改模板代码。我需要操作内容 DOM 并将其克隆到容器中,无需更改模板。这非常重要,因为如果我想重用代码,我需要它保持不变。
我尝试了多种方法来使用 jQuery 来模仿上面的 javascript 代码,但我无法弄清楚。如果有jQuery的方式就更好了。
【问题讨论】:
-
我会说你代码中的顺序是错误的。我会按以下顺序尝试: 1. 查询模板。 2.导入节点。 3.修改内容。 4.追加到DOM。
标签: javascript jquery html