javascript - 如何将 <template> 与动态 ID 一起使用?

标签 javascript html html-templates

给定一个像这样的 HTML 模板:

<template id="paragraph-template">
<p>Hi, I am a paragraph</p>
</template>

我通过 JS 加载并附加此模板,如下所示:

let templateInstance = document.getElementById("paragraph-template");
myContainer.appendChild(templateInstance)

现在我想多次添加模板(即在 for 循环中),并且我想要 <p> -每个元素都有一个唯一的 id,因此结果将类似于:

<div>
<p id="p1">Hi, I am a paragraph</p>
<p id="p2">Hi, I am a paragraph</p>
<p id="p3">Hi, I am a paragraph</p>
<div>

如何使用 HTML 模板实现此目的?

编辑: 我在这里提供的示例是缩小的 – 在现实世界中,我有一个包含许多元素的模板,这些元素都应该有一个唯一的 ID。

最佳答案

我建议你:

    let templateInstance = document.getElementById("paragraph-template");
    for(var i=1;i<4;i++){
        let clone = document.importNode(templateInstance .content, true);       
        clone.querySelector('p').id = "p"+i;
        myContainer.appendChild(clone); 
    }

关于javascript - 如何将 <template> 与动态 ID 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341888/

相关文章:

jQuery slideDown 菜单在第二次悬停之前不起作用

javascript - 如何将客户端 .STL 文件加载到 Three.js 场景中而不是从服务器加载?

javascript - 利用 customElements 在 javascript 中创建页面构建框架

javascript - 如何通过 jQuery 获取时间服务器的实时时间

javascript - JSF 在 f :ajax 之后执行 javascript

javascript - 有没有办法从浏览器的JS知道 "busy"某人的机器是如何的?

javascript - 验证表单中的年龄但没有得到输出,不确定什么是不正确的

css - 三列始终具有相同的大小和动态内容

javascript - 将 <template> 中的内容注入(inject) <slot>

javascript - Meteor Blaze 访问 Template.onCreated 中的 Template.contentBlock