简体   繁体   English

使用 JavaScript 将 2 个 TD 元素添加到表中

[英]Adding 2 TD elements to a table using JavaScript

I have a table on my web page that I wish to change using JavaScript.我的网页上有一个表格,我希望使用 JavaScript 对其进行更改。 My main goal is to add 2 TD to a new row.我的主要目标是将 2 TD 添加到新行。 Somehow after running my code a new row is inserted but all the data is in on TD, why?以某种方式运行我的代码后,插入了一个新行,但所有数据都在 TD 上,为什么?

var table2 = document.getElementById("testsPieArea");
var rowCounter = table2.rows.length;
var i;
for (i = 0; i < 2; i++) {
  var row = table2.insertRow(rowCounter);
  var cell1 = row.insertCell(0);
  var cellData = "<tr>";
  cellData += "<td> Info1 </td><td> Info2 </td></tr>";
  cell1.innerHTML = cellData;
  rowCounter++;
}

In real life is see 2 rows being created but "info1info2" is written in them and that's not what I asked for.在现实生活中,看到创建了 2 行,但在其中写入了“info1info2”,这不是我所要求的。

cell1 (created by HTMLTableRowElement.insertCell() ) refers to a cell ( td ), not row . cell1 (由HTMLTableRowElement.insertCell()创建)指的是一个单元格( td ),而不是row You should insert into row :您应该插入

row.innerHTML = cellData;

 var table2 = document.getElementById("testsPieArea"); var rowCounter = table2.rows.length; for (var i = 0; i < 2; i++) { var row = table2.insertRow(rowCounter); var cellData = "<tr><td> Info1 </td><td> Info2 </td></tr>"; row.innerHTML = cellData; rowCounter++; }
 table, td { border: 1px solid black; }
 <table id="testsPieArea"></table>

If you want to add a new row, with two values, you can create the elements and set their textContent before adding them as children.如果要添加具有两个值的新行,可以在将textContent添加为子textContent之前创建元素并设置它们的textContent

 insertRow(document.querySelector('#my-table'), [ 'A', 'B' ]); function insertRow(table, data) { let tbody = table.querySelector('tbody'), tr = document.createElement('tr'); data.forEach(value => { let td = document.createElement('td'); td.textContent = value; tr.appendChild(td); }); tbody.appendChild(tr); }
 table { border-collapse: collapse; } table, th, td { border: thin solid grey; } th, td { text-align: center; padding: 0.25em; }
 <table id="my-table"> <thead> <tr> <th>Col 1</th> <th>Col 2</th> </tr> </thead> <tbody> <tr> <td>Row 1, Col 1</td> <td>Row 1, Col 2</td> </tr> </tbody> </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM