javascript - 如何通过 HTML 集合映射并向每个集合添加动态元素?
问题描述
我想通过一个 HTML 集合数组进行映射。
let mainElem = Array.from(document.getElementsByClassName('ant-upload-list-picture-card-container'))
并向数组中的每个项目添加另一个元素。
我试图遍历它们中的每一个。它工作正常,但元素 emptydiv 仅附加在最后一项
Array.prototype.map.call(mainElem, (tag, i) => {
emptyDiv.classList.add(`dynamicClass_${i}`)
if (i === 0) {
emptyDiv.classList.add('dynamic_active_class');
}
else {
emptyDiv.classList.add('dynamic_inactive_class');
}
tag.appendChild(emptyDiv);
})
解决方案
emptyDiv
在每次迭代中指向相同的元素,这意味着您将其附加到一个索引,在下一个索引中,您从前一个索引中获取它,并附加到当前索引。
如果要将空 div 附加到每个索引,则必须在每次迭代时创建一个新元素:
Array.prototype.map.call(mainElem, (tag, i) => {
const emptyDiv=document.createElement("div")
emptyDiv.classList.add(`dynamicClass_${i}`)
if (i === 0) {
emptyDiv.classList.add('dynamic_active_class');
}
else {
emptyDiv.classList.add('dynamic_inactive_class');
}
tag.appendChild(emptyDiv);
})
推荐阅读
- java - 如何从 ArrayList 中的特定索引更新元素
- php - 尝试在functions.php Wordpress上添加代码片段时出现致命错误
- deployment - 部署到 Netlify 一个普通的 JS 应用程序时出现问题
- python - 无法检查 Discord.py 中的反应
- python-jira - 通过 Python 将动态验收标准插入自定义字段
- python - 如何使图像在 pygame 上消失?
- ios - SwiftUI:GMSMapView 不符合协议 UIViewRepresentable
- bash - cURL 使用来自用户的输入作为 url
- xml - 基于多级 xml 中的标头级别条件填充空节点
- azure - Azure DevOps Yaml:从变量的 Azure KeyVault 任务中获取秘密变量