javascript - 动态添加具有不同值的 DIV 元素
问题描述
我想根据我的 API 的结果动态创建一个具有不同值的 div 卡。目前,值不断相互覆盖,因为它们都共享相同的元素 ID。有没有办法让我动态地将所有值添加到他们自己的卡片中?
res.forEach(x => {
const div = document.createElement("div");
div.className = "card mb-4 box-shadow";
div.innerHTML = `
<div class="card-header">
<h4 id="serverName" class="my-0 font-weight-normal"></h4>
</div>
<div class="card-body">
<h1 id="serverPrice" class="card-title pricing-card-title"></h1>
<p id="serverTraits" class="list-unstyled mt-3 mb-4"></p>
</div>`
document.getElementById("content").appendChild(div);
document.getElementById("serverName").innerHTML = x.name
document.getElementById("serverPrice").innerHTML = x.price + '$'
document.getElementById("serverTraits").innerHTML = x.traits
})
解决方案
一种适用于您当前解决方案的简单方法是简单地在您的 id 后面附加索引或数字
例如
<!-- your html code becomes something like this -->
<h4 id="serverName1" class="my-0 font-weight-normal"></h4>
<h4 id="serverName2" class="my-0 font-weight-normal"></h4>
<h4 id="serverName3" class="my-0 font-weight-normal"></h4>
检索时,同样,附加索引
document.getElementById("serverName" + index).innerHTML = x.name
这样,您所有的 id 都将是唯一的。
编辑:以下是如何在 id 后面附加数字的示例
innerHTML = `
<div class="card-header">
<h4 id="serverName` + 1 + `" class="my-0 font-weight-normal"></h4>
</div>
<div class="card-body">
<h1 id="serverPrice" class="card-title pricing-card-title"></h1>
<p id="serverTraits" class="list-unstyled mt-3 mb-4"></p>
</div>`;
推荐阅读
- mysql - MySQL 时区、现在时间和工作台执行脚本的时间都不同
- javascript - 如何在 eslint 中使用与项目相关的导入?
- sql-server - SSIS 包卡在“等待执行”状态
- html - Jinja2 中使用 range(len()) 的数组中的表
- c# - 从不同的类 c#ranorex 访问绑定变量
- dll - Roslaunch 无法打开共享对象文件:没有这样的文件或目录
- python - 如何将项目附加到二维列表中?
- python - PyCharm 中的 MATLAB whos 和工作区等价物
- c++ - 从技术上讲,什么是移动对象?
- c - 在 C 中需要时分配字符串数组