我试图通过单击按钮生成一个随机名称,然后将该随机名称插入到看起来有点像这样的 HTML 表格中:
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
<tr>
<th>Black</th>
<th>Blue</th>
<th>B & B</th>
<th>Ex-Tm #1</th>
<th>Ex-Tm #2</th>
<th>Gryphons</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
我想要做的是点击一个按钮 var round1
将从 var round1names
中随机选择一个名称并将其插入单元格 1,1 ,然后从剩余的名称中随机选择并将该名称插入单元格 1,2... 并执行此操作,直到只剩下 1 个名称将插入到表格的单元格 1,6 中,只需单击一个按钮,这是我到目前为止的 JS 代码:
function myFunction()
{
var round1names = ['Forrest Gump', 'Tim Thomas', 'Pamila Henryson', 'Lotus Hobbes', 'Jerry Sparks', 'Kenneth Ingham'];
var round1 = round1names[Math.floor(Math.random()*round1names.length)];
}
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="myFunction()">Click me</button>
</body>
</html>
最佳答案
这是我在 jsFiddle 上的想法:
var x = 0, //starting column Index
cells = document.getElementsByTagName('td')
names = ['Forrest Gump', 'Tim Thomas', 'Pamila Henryson', 'Lotus Hobbes', 'Jerry Sparks', 'Kenneth Ingham'];
function myFunction(namesArray)
{
var round1names = namesArray.slice(0);
while (round1names.length > 0 && x < cells.length) {
var randomIndex = Math.floor(Math.random()*round1names.length);
cells[x].innerHTML = round1names[randomIndex];
x++;
round1names.splice(randomIndex, 1);
}
}
( https://jsfiddle.net/vuehc4n2/3/ )
然后在按钮的 onclick 上,传入名称数组:
<button type="button" onclick="myFunction(names)">Click me</button>
我已将名称数组移到函数外部,然后将其传递给 myFunction。该函数创建数组的副本,然后将该数组中的一个名称随机插入到表列中。如果名字超过 6 个,它会自动换行到下一行。然后,它从数组副本中删除名称。一旦所有名称都消失/使用,该功能就完成了。
创建数组的副本将允许您多次单击按钮。
希望这对您有所帮助!
关于javascript - 将随机值插入表 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146208/