Javascript thead DOM覆盖第一行数据

时间:2019-06-21 15:41:09

标签: javascript dom

我正在动态创建一个表,当我插入标题时,缺少结果之一。应该是:

| header 1 | header 2 |
| data | data |
| data | data |

但显示为:

| header 1 | header 2 |
| data | data |

如果我删除了thead部分,那么一切都会正确显示。

部分代码。

    for (var i = gymLinks.length - 1; i >= 0; i--) {
      //capture URL
      var url = gymLinks[i].substr(0, 106);
      //capture app version
      var appVersion = gymLinks[i].substr(108, 111);
      //Creating the table
      var table = document.getElementById("myTable");
      //create table header 
      var theader = table.createTHead (0);
      theader.innerHTML = '<tr><th>Gym Link</th><th>Version</th></tr>';              
      var row = table.insertRow(1);
      var cell1 = row.insertCell(0);
      var cell2 = row.insertCell(1);
      //creating table elements
      linkElement = document.createElement("a");
      linkElement.setAttribute("href", url);
      var linkText = document.createTextNode(url);
      //linkElement.append(linkText);
      cell1.innerHTML = '<a href="' + url + '">' + linkElement + "</a>";
      cell2.innerHTML = appVersion;
    }
  });

3 个答案:

答案 0 :(得分:3)

这可能是因为您只是将行插入到同一行索引中。

var row = table.insertRow(1);

答案 1 :(得分:0)

这可能对您有帮助吗?

机会

for (var i = gymLinks.length - 1; i >= 0; i--)

for (var i = 0 ; i <= gymLinks.length - 1; i++)

然后尝试...

  var row = table.insertRow(i); or i+1??

答案 2 :(得分:0)

感谢Amy和frobinsonj提出的建议。

我将此移到了循环之外

    var theader = table.createTHead (0);
    theader.innerHTML = '<tr><th>Gym Link</th><th>Version</th></tr>';  

已更新:

      var row = table.insertRow(1);