javascript - 如何使用 javascript 创建表格

标签 javascript html css

我想用 javascript 创建表格。我想询问用户表格的宽度和高度(1 个单元格是 1 个单元)。然后在创建表时,如果用户单击其中一个单元格,颜色会发生变化。我写了这么多代码,但我几乎卡住了。

HTML 代码:

    <script src="script.js"></script>
    <style>
        #chessboard{border: 1px solid black; border-collapse: collapse}
        td {width: 40px; height: 40px}

        tr:nth-child(odd) td:nth-child(even) {background: black}
        tr:nth-child(even) td:nth-child(odd) {background: black}
    </style>
</head>
<body onload="myFunction()">
    <div>
        <table id="chessboard">

        </table>
    </div>
</body>

JavaScript:

   var width = parseInt(prompt("Put width", "here"));
   var height = parseInt(prompt("Put height", "here"));

      function myFunction()
      {
         var tabel = document.getElementById("chessboard");

        for (i = 0; i < height; i++){
        var row = tabel.insertRow(i);
        };

        for (j = 0; j < width; j++){
        var celica = document.getElementByTagName("tr").rows[j];
        var x = celica.insertCell(j);
        };

        }

最佳答案

与其在行中单独遍历所需的列,不如尝试嵌套 for 循环。这要容易得多,意味着您不必笨拙地再次查找该行。

仅供引用,没有 getElementByTagName,只有 getElementsByTagName。

  var width = parseInt(prompt("Put width", "here"));
  var height = parseInt(prompt("Put height", "here"));

  function myFunction() {
    var table = document.getElementById("chessboard");

    for (var i = 0; i < height; i++) {
      var row = table.insertRow(i);
      
      for (var j = 0; j < width; j++) {
        row.insertCell(j);
      }
    };

  }
<head>
  <script src="script.js"></script>
  <style>
    #chessboard {
      border: 1px solid black;
      border-collapse: collapse
    }
    td {
      width: 40px;
      height: 40px
    }
    tr:nth-child(odd) td:nth-child(even) {
      background: black
    }
    tr:nth-child(even) td:nth-child(odd) {
      background: black
    }
  </style>
</head>

<body onload="myFunction()">
  <div>
    <table id="chessboard">

    </table>
  </div>
</body>

关于javascript - 如何使用 javascript 创建表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796007/

相关文章:

javascript - 无法强制 float 刻度数

html - 在 CSS 中拉伸(stretch)字体

javascript - 链接仍然是 :hover'ed when opened from JS

javascript - 在输入焦点上显示跨度

javascript - If 语句包含在 If 语句中?

html - Angular 6 - 从 httpClient 获取 csv 响应

javascript - iPhone/iPad 应用程序图像格式化最佳实践

html - 我想使用 bootstrap4 在列的顶部添加一个 10 px 的边框

html - 绝对位置与 Left :100% , 子元素脱离父容器

Javascript:混合构造函数模式和揭示模块模式