javascript - Javascript循环遍历列表不起作用
问题描述
我正在尝试制作一张表情符号表并制作了一个 foreach 循环来制作一张表:
emojis = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '⚡', '✊', '✋', '✌', '✍', '❤', '⭐']
var i = 0
document.getElementById("emojiTable").innerHTML += "<table><tr>"
emojis.forEach(emoji => {
if(i == 12) {
document.getElementById("emojiTable").innerHTML += "</tr><tr>"
i = 0
}
document.getElementById("emojiTable").innerHTML += "<td>"+emoji+"</td>"
i ++
})
document.getElementById("emojiBAR").innerHTML += "</table>"
我的问题是,当我运行代码而不是获取 12 x 6 表时,我得到了这段奇怪的 HTML:
<table><tbody><tr></tr></tbody></table>⚡✊✋✌✍❤⭐
我不知道是什么原因造成的。我怎样才能解决这个问题?
解决方案
一种更实用的方法,它创建一个表格元素并使用Table.insertRow()
and Row.insertCell()
:
emojis = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '⚡', '✊', '✋', '✌', '✍', '❤', '⭐']
const table = document.createElement('table');
let row;
emojis.forEach((emoji, i) => {
if (i % 12 === 0) {
row = table.insertRow();
}
row.insertCell().innerHTML = emoji;
})
document.getElementById("emojiTable").append(table)
<div id="emojiTable"></div>
推荐阅读
- pine-script - 我的 tradingview 脚本中的脚本参数
- c++ - 使用 g++ 在 Visual Studio 代码中调试
- flutter - 仅使用一页 DefaultTabController 的 3 个 TabBars
- sql - 如果在执行长时间运行的更新查询时关闭了具有 SQL Server 的计算机,数据会发生什么情况?
- javascript - 如果选择了单选按钮,则向上滚动到单选的第一行
- opengl - 在模型上分离 alpha/opacity 图像或 UV?
- spring - 如何将密钥分发中心的位置指定给 Spring Security Kerberos?
- ansible - 在 Ansible 中,我可以重用像子例程这样的角色吗?
- php - 单击元素或元素时如何在标志之间切换在里面使用AJAX?
- c - Swig 在结构中包装 unsigned char 指针成员