append方法如何处理html模板标记



我试图在div_1和div_2的html模板标记中添加内容,但它只在div_1中添加,请评估我的代码中有什么错误。

  • html代码

<!DCOTYPE html>
<html>
<head>
<title>Document</title>
</head>
<body>
<template>
<h2>Grocery Item</h2>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</template>
<div id="main-div" style="display: 1px solid black;"></div>
<div id="another-div style="display: 1px solid black;"></div>

<script>
const template = document.querySelector("template");
const tempBody = document.importNode(template.content, true);

const list = tempBody.querySelectorAll("li");
for (let i = 0; i < 3; i++) {
list[i].textContent = "Item - " + ( i + 1 );
}
const div = document.getElementById("main-div");
const div_1 = document.getElementById("another-div");

div.append(tempBody);
div_1.append(tempBody);
</script>
</body>
</html>
提前感谢。

您可以尝试以下方法:

<template>
<h2>Grocery Item</h2>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</template>
<div id="main-div" style="display: 1px solid black;"></div>
<div id="another-div" style="display: 1px solid black;"></div>
<script>
const template = document.querySelector("template");

//div_1
let tempBody = document.importNode(template.content, true); // declare with var or let
updateTemplate(tempBody);
const div = document.getElementById("main-div");
const div_1 = document.getElementById("another-div");  
div.append(tempBody);

//div_2
tempBody = document.importNode(template.content, true);
updateTemplate(tempBody);
div_1.append(tempBody);

//function to populate tempBody
function updateTemplate(tempBody){
const list = tempBody.querySelectorAll("li");
for (let i = 0; i < 3; i++) {
list[i].textContent = "Item - " + ( i + 1 );
}
}
</script>

最新更新