javascript - 使用 for 循环结果作为类名
问题描述
我想学习 JavaScript,却被一些代码卡住了。
我制作了一个数组并在具有固定 id 的 div 中显示结果,但我希望类名是数组结果的名称。
fruits = ["Banana", "Orange", "Apple", "Mango"];
for (i = 0; i < fruits.length; i++) {
document.write("<div id=fruit>" + fruits[i] + "</div>") ;
document.getElementById("fruit").className = fruits[i];
}
这是我得到的结果
<div id="fruit" class="Mango">Banana</div>
<div id="fruit">Orange</div>
<div id="fruit">Apple</div>
<div id="fruit">Mango</div>
只有第一个 div 得到一个类,但结果错误。
我搜索了几个小时,但无法让它工作。如果有人指出我做错了什么的正确信息,那就太好了。
解决方案
这是因为document.getElementById("fruit").className = fruits[i];
您通过 id 选择了一个元素,它只返回 1 个元素,即“第一次出现”,因为您应该为每个元素使用唯一的 ID。
你可以简单地做这样的事情:
fruits = ["Banana", "Orange", "Apple", "Mango"];
for (i = 0; i < fruits.length; i++) {
document.write("<div id='"+fruits[i]+"-fruit' class='"+fruits[i]+"'>" + fruits[i] + "</div>") ;
}
推荐阅读
- next.js - 我想使用tailwind CSS制作一个弹出窗口,但元素没有出现在屏幕前面
- java - 标签引导与 Thymeleaf
- azure - 使用 Azur Ad Auth 从 .NET Core Web API 读取/写入 Azure Blob
- typescript - @Tree('closure-table') 实体的 TypeORM 迁移文件
- c# - MudBlazor 动态选项卡通过组件中的 foreach
- excel - 查询不想完成的网址
- html - 向下拉菜单添加溢出隐藏子菜单
- c# - EF-Core:Equals() 无法检查 null
- git - Git rebase 失败并出现错误:您对以下文件的本地更改可能会被合并覆盖[包含的屏幕截图]
- python - QueueManager.close() 使用 pymqi