使用DOM生成一个表格,表格里面有随机的背景色和数字

150 阅读1分钟

点击了按钮,会触发点击事件,这是一个函数,所有的内容都写进函数里面。

用循环的方式,先获取到input输入的值,(input输入数字的时候,用input.value获取)分别创建出table tr td,并把table挂到body,把tr挂到table,把td挂到tr,语法如table.appendChild()

每一次点击都生成新的表格,所以要把之前的删除,用移除元素的方式remove()

td的内容是随机数字,td的背景色也是随机的,用td.innerHTML = "Math.random()*100"和td.style.backgroungClolor=rgb(),配合模板字符串使用。

image.png

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <title>插入制定表格数的表格</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <link href="" rel="stylesheet" />
    <style>
      body {
        font: 700 14px/1.5 Arial;
        margin: 0;
        padding: 0 10px;
      }
      table {
        clear: both;
        border: 1px solid #000;
      }
      td {
        cursor: pointer;
        text-align: center;
        border: 1px solid #000;
        padding: 5px;
      }
      #setting {
        float: left;
        clear: left;
        line-height: 28px;
        margin: 10px 0;
      }
      #setting input {
        width: 50px;
        font-family: inherit;
        border: 2px solid #ccc;
        margin: 0 5px;
        padding: 4px;
      }
      #btn {
        font-size: 14px;
        line-height: 18px;
        color: #fff;
        text-decoration: none;
        background: #353535;
        border-top: 1px #999 solid;
        border-radius: 5px;
        padding: 4px 6px;
      }
      em {
        width: 25px;
        height: 25px;
        display: inline-block;
        margin-right: 5px;
      }
      #setting label,
      #setting input,
      #setting a {
        float: left;
      }
      strong {
        color: red;
        margin-left: 20px;
      }
    </style>
  </head>
  <body>
    <div id="setting">
      <label>行数</label>
      <input type="text" id="row" />
      <label>列数</label>
      <input type="text" id="col" />
      <a href="javascript:;" id="btn">生成表格</a>
      <strong>提示:行和列只能是数字,且最大为50</strong>
    </div>
  </body>
  <script>
    // 找到行数和列数input.value

    // 点击按钮
    var createTable = document.getElementById("btn");
    // 点击了生成表格的时候,生成表格table tr td,外层搞定行,内层搞定列数
    createTable.onclick = function () {
      // 创建表格挂到body上面
      var tableNode = document.createElement("table");
      var rowNumber = parseInt(document.getElementById("row").value);
      //   点击的时候,如果下面有表格,就把表格清除,生成新的表格
      if (document.querySelector("table")) {
        document.body.removeChild(document.querySelector("table"));
      }
      
      for (var i = 0; i < rowNumber; i++) {
        var trNode = document.createElement("tr");

        var colNumber = parseInt(document.getElementById("col").value);
        for (var j = 0; j < colNumber; j++) {
          var tdNode = document.createElement("td");
          //   tdNode里面是0-100的随机数字
          tdNode.innerHTML = parseInt(Math.random() * 100);
          //   为tdNode添加背景色
          //   rgb(0,255,255),rgb里面的数字要是随机数
          tdNode.style.backgroundColor = `rgb(
           ${Math.random() * 255} ,
          ${Math.random() * 255}  ,
          ${Math.random() * 255} )`;

          trNode.appendChild(tdNode);
        }
        tableNode.appendChild(trNode);
      }
      document.body.appendChild(tableNode);
    };
    // td里面是随机数,并为td添加背景色
  </script>
</html>