javascript - 从 2D JavaScript 数组生成 HTML 表格

标签 javascript html-table

在 JavaScript 中,是否可以从二维数组生成 HTML 表格?编写 HTML 表格的语法往往非常冗长,因此我想从 2D JavaScript 数组生成 HTML 表格,如下所示:

[
  ["row 1, cell 1", "row 1, cell 2"], 
  ["row 2, cell 1", "row 2, cell 2"]
]

会变成:

<table border="1">
  <tr>
    <td>row 1, cell 1</td>
    <td>row 1, cell 2</td>
  </tr>
  <tr>
    <td>row 2, cell 1</td>
    <td>row 2, cell 2</td>
  </tr>
</table>

所以我正在尝试编写一个 JavaScript 函数,它会从 2D JavaScript 数组返回一个表,如下所示:

function getTable(array){
  // take a 2D JavaScript string array as input, and return an HTML table.
}

最佳答案

这是一个使用 dom 而不是字符串连接的函数。

function createTable(tableData) {
  var table = document.createElement('table');
  var tableBody = document.createElement('tbody');

  tableData.forEach(function(rowData) {
    var row = document.createElement('tr');

    rowData.forEach(function(cellData) {
      var cell = document.createElement('td');
      cell.appendChild(document.createTextNode(cellData));
      row.appendChild(cell);
    });

    tableBody.appendChild(row);
  });

  table.appendChild(tableBody);
  document.body.appendChild(table);
}

createTable([["row 1, cell 1", "row 1, cell 2"], ["row 2, cell 1", "row 2, cell 2"]]);

关于javascript - 从 2D JavaScript 数组生成 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164655/

相关文章:

javascript - 顶级域的电子邮件地址验证

javascript - 如何跟踪委托(delegate)实际被单击的元素?

html - 扩大表格单元格的上边框宽度

html - CSS 斑马条纹特定表 tr :nth-child(even)

javascript - 在 javascript 中解构键和对象的参数

javascript - 是否可以使用 Graphql 生成的模式作为流定义?

javascript - Angularjs:如何在路由后调用 Controller 函数

php - 如何使用 Ajax 或 Jquery 填充文本框中的值?

html - 如何在第一行下方绘制水平分隔线?

php - 格式化 MySQL 数据输出