javascript - 将随机值插入表 JS

标签 javascript html css

我试图通过单击按钮生成一个随机名称,然后将该随机名称插入到看起来有点像这样的 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/

相关文章:

javascript - Jquery 不分配 CSS 类

html - 动态 DIV 使用 CSS 垂直居中对齐

Javascript 动画 : stop doing multiple jumps

javascript - react-bootstrap-table2 自定义验证器错误消息出现在 UI 中

php - 如果屏幕分辨率 <1000 像素,则显示不同的站点

javascript - 如何将输入元素及其标签包装到一个 div 中并将其放在其父元素之后?

javascript - 如何在带有 <span> 的 html 中创建一个新的 <li>

javascript - AJAX/ Spring MVC : JSON Object rendering in bracket notation in POST request

javascript - 无法理解为什么我的 Javascript 函数不起作用?

javascript - CSS3 响应式,动态八边形