【问题标题】:Looping through code to create `<th>` tags but getting `<td>`循环通过代码创建`<th>`标签但得到`<td>`
【发布时间】:2021-08-03 21:23:58
【问题描述】:

这是我的代码 sn-p,对于每一行,我都在遍历这个数组,并希望创建 &lt;th&gt; 多次循环继续。因此,例如,如果循环持续 3 次,则应使用计划名称创建 3 个&lt;th&gt;。但问题不是&lt;th&gt; 我有3 &lt;td&gt;。 请告诉我哪里出错了?

for (j = 0; j < bid[j].length; j++) {

  for (k = 0; k < plan["data"].length; k++) {
    if (plan["data"][k]) {
      if (bid[j] == plan["data"][k]) {
        first_row = '<th><b>' + plan["data"][k]["[Plan name]"] + '</b></th>';
        var table = document.getElementById("data");
        var cell1 = row.insertCell(1);
        cell1.innerHTML = first_row;
        //$("#data").append(first_row); 
      }
    }
  }
}

我想要这样的东西

  
      <tr>
        <th>Header 1</th>
        <th>Header 2</th>
        <th>Header 3</th>
      </tr>
 

【问题讨论】:

标签: javascript html jquery html-table innerhtml


【解决方案1】:

您不能将&lt;th&gt; 放在表格单元格中。单元格是&lt;td&gt;&lt;th&gt;。但是insertCell 总是创建&lt;td&gt; 单元格。将&lt;th&gt; 放入其中不会改变其类型。

使用 jQuery 将&lt;th&gt; 添加到表格的第一行。

for (j = 0; j < bid[j].length; j++) {

  for (k = 0; k < plan["data"].length; k++) {
    if (plan["data"][k]) {
      if (bid[j] == plan["data"][k]) {
        $("#data tr:first").append('<th><b>' + plan["data"][k]["[Plan name]"] + '</b></th>'); 
      }
    }
  }
}

【讨论】:

  • var table = document.getElementById("data"); var row = table.insertRow(-1); var cell1 = row.insertCell(0); $("#data td:first").append('计划名称');
  • 我也试图在另一个场景中使用它,我这样做是为了将行的第一个单元格创建为&lt;th&gt;。但再次得到&lt;td&gt;
  • 您不能将th 附加到td。那应该是#data tr:first
猜你喜欢
  • 1970-01-01
  • 2021-02-27
  • 2022-07-01
  • 1970-01-01
  • 2018-02-28
  • 2012-03-09
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
相关资源
最近更新 更多