【问题标题】:DOM created table but not all columns have cellsDOM 创建了表,但并非所有列都有单元格
【发布时间】:2019-03-03 10:26:34
【问题描述】:

我正在制作一个您可以输入的网站。我正在处理表格。只有一列有一个单元格。所有其他都是空白的。我该怎么办?

代码:

var i = 0;
var j = 0;
var row = 10;
var col = 10;
row += 1;
col += 1;
var headingChild = document.createElement("table");
var headingParent = document.getElementsByClassName("editable")[0];
headingParent.appendChild(headingChild);
while (i < row) {
  var rowParent = headingChild.insertRow(-1);

  while (j < col) {
    var cellParent = rowParent.insertCell(-1);
    cellParent.style = "border: solid;";
    j++;



  }
  i++;
}
td {
  visibility: visible;
  display: block;
}
&lt;div contenteditable="true" class="editable"&gt;

谢谢!

【问题讨论】:

    标签: javascript html dom html-table


    【解决方案1】:

    您需要将每一行的j 重置回0。最小的变化是:

    var i = 0;
    var j = 0;
    var row = 10;
    var col = 10;
    row += 1;
    col += 1;
    var headingChild = document.createElement("table");
    var headingParent = document.getElementsByClassName("editable")[0];
    headingParent.appendChild(headingChild);
    while (i < row) {
      var rowParent = headingChild.insertRow(-1);
    
      j = 0; // <=========================================== here
      while (j < col) {
        var cellParent = rowParent.insertCell(-1);
        cellParent.style = "border: solid;";
        j++;
      }
      i++;
    }
    td {
      visibility: visible;
      display: block;
    }
    &lt;div contenteditable="true" class="editable"&gt;

    ...但实际上,这是for 循环的工作:

    // *** Removed i and j here
    var row = 10;
    var col = 10;
    row += 1;
    col += 1;
    var headingChild = document.createElement("table");
    var headingParent = document.getElementsByClassName("editable")[0];
    headingParent.appendChild(headingChild);
    for (var i = 0; i < row; ++i) {                   // ***
      var rowParent = headingChild.insertRow(-1);
    
      for (var j = 0; j < col; ++j) {                 // ***
        var cellParent = rowParent.insertCell(-1);
        cellParent.style = "border: solid;";
        // *** Removed j++;
      }
      // *** Removed i++;
    }
    td {
      visibility: visible;
      display: block;
    }
    &lt;div contenteditable="true" class="editable"&gt;

    【讨论】:

    • 如何让它变成正方形而不是直线?
    • @EthanZoneCoding - 删除覆盖表格单元格默认处理的 CSS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2017-03-16
    相关资源
    最近更新 更多