迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中动态创建表格

作者:迹忆客 最近更新:2024/03/18 浏览次数:

本文介绍了如何在 JavaScript 中动态创建表格。


在 JavaScript 中动态创建表格

动态是什么意思?JavaScript 是动态类型语言吗?

是的,JavaScript 是一种动态类型语言,这意味着我们不需要对所有内容进行硬编码,而是编写在运行时执行的代码。

同样重要的是要记住,在动态编写代码时,我们不会在编译时了解错误。这是因为动态编写的代码在程序执行期间运行。

所以,我们需要对代码保持谨慎,因为我们会在运行时知道错误(如果有的话),这可能会消耗更多的时间和精力。

例如,我们有一千行代码需要时间来准备执行。准备好后,我们意识到动态编写的代码中存在错误。

JavaScript 代码:

var table = document.createElement('table');
var tr = document.createElement('tr');
var array = ['ID', 'FirstName', 'LastName', 'Gender'];

for (var j = 0; j < array.length; j++) {
  var th = document.createElement('th');         // column
  var text = document.createTextNode(array[j]);  // cell
  th.appendChild(text);
  tr.appendChild(th);
}
table.appendChild(tr);

for (var i = 0; i < array.length; i++) {
  var tr = document.createElement('tr');

  var td1 = document.createElement('td');
  var td2 = document.createElement('td');
  var td3 = document.createElement('td');
  var td4 = document.createElement('td');

  var text1 = document.createTextNode('Text1');
  var text2 = document.createTextNode('Text2');
  var text3 = document.createTextNode('Text3');
  var text4 = document.createTextNode('Text4');

  td1.appendChild(text1);
  td2.appendChild(text2);
  td3.appendChild(text3);
  td4.appendChild(text4);

  tr.appendChild(td1);
  tr.appendChild(td2);
  tr.appendChild(td3);
  tr.appendChild(td4);

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

输出:

在这个片段中,我们使用 createElement() 创建元素节点,它可以是 <table><tr><th><td> 或任何其他 HTML 元素。由于我们关心的是在此处创建表格,因此我们将使用与表格相关的标签来限制文章。

创建 HTML 元素后,我们需要为每个元素添加文本。为此,使用了 createTextNode()

此外,我们使用 appendChild() 方法将当前节点附加为节点的最后一个子节点。让我们简单了解一下整个过程。

  1. 创建一个 HTML 元素。
  2. 创建一个文本节点。
  3. 将当前文本节点附加到 HTML 元素。
  4. 最后,将 HTML 元素附加到文档中。

你可能认为一张表可以在整列中拥有相同的数据?是的你是对的。

表不包含冗余数据。那么,如何通过动态编码来解决呢?

我们可以创建一个对象数组,并在表中填充数据。请参阅以下示例。

JavaScript 代码:

var table = document.createElement('table');
var tr = document.createElement('tr');
var arrheader = ['ID', 'FirstName', 'LastName', 'Gender'];
var array = [
  {ID: 1, FirstName: 'Mehvish', LastName: 'Ashiq', Gender: 'Female'},
  {ID: 2, FirstName: 'Thomas', LastName: 'Christoper', Gender: 'Male'},
  {ID: 3, FirstName: 'Shiva', LastName: 'Pandy', Gender: 'Male'},
  {ID: 4, FirstName: 'Tina', LastName: 'Robert', Gender: 'Female'}
];

for (var j = 0; j < array.length; j++) {
  var th = document.createElement('th');             // column
  var text = document.createTextNode(arrheader[j]);  // cell
  th.appendChild(text);
  tr.appendChild(th);
}
table.appendChild(tr);

for (var i = 0; i < array.length; i++) {
  var tr = document.createElement('tr');

  var td1 = document.createElement('td');
  var td2 = document.createElement('td');
  var td3 = document.createElement('td');
  var td4 = document.createElement('td');

  var text1 = document.createTextNode(array[i].ID);
  var text2 = document.createTextNode(array[i].FirstName);
  var text3 = document.createTextNode(array[i].LastName);
  var text4 = document.createTextNode(array[i].Gender);

  td1.appendChild(text1);
  td2.appendChild(text2);
  td3.appendChild(text3);
  td4.appendChild(text4);

  tr.appendChild(td1);
  tr.appendChild(td2);
  tr.appendChild(td3);
  tr.appendChild(td4);

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

输出:

我们可以通过编写 table.setAttribute("border", "solid");border 添加到此表中在 document.body.appendChild(table); 之前。让我们使用 jQuery 来练习一下。


在 JavaScript 中使用 jQuery 动态创建表

在 jQuery 中,我们创建一个表格元素为 $('<table>'),你可以替换它来创建其他元素(参见以下示例)。.text() 将内容添加到 HTML 元素,而 .css() 通过为这个特定示例添加 border 来美化表格。

它有两个参数,属性名称和它的值。append() 方法与 appendChild() 的工作方式相同,将节点附加为元素的最后一个节点。

JavaScript 代码:

var table = $('<table>');
var tr = $('<tr>');
var arrheader = ['ID', 'FirstName', 'LastName', 'Gender'];
var array = [
  {ID: 1, FirstName: 'Mehvish', LastName: 'Ashiq', Gender: 'Female'},
  {ID: 2, FirstName: 'Thomas', LastName: 'Christoper', Gender: 'Male'},
  {ID: 3, FirstName: 'Shiva', LastName: 'Pandy', Gender: 'Male'},
  {ID: 4, FirstName: 'Tina', LastName: 'Robert', Gender: 'Female'}
];
for (var j = 0; j < arrheader.length; j++) {
  tr.append($('<th>').text(arrheader[j]));
}
table.append(tr);

for (var i = 0; i < array.length; i++) {
  table.append($('<tr>').append(
      $('<td>').text(array[i].ID), $('<td>').text(array[i].FirstName),
      $('<td>').text(array[i].LastName), $('<td>').text(array[i].Gender)));
}

table.css('border', 'solid');
$('body').append(table);

输出:

让我们在每个单元格周围添加一个边框。请参阅以下代码段。

JavaScript 代码:

var table = $('<table>');
var tr = $('<tr>');
var arrheader = ['ID', 'FirstName', 'LastName', 'Gender'];
var array = [
  {ID: 1, FirstName: 'Mehvish', LastName: 'Ashiq', Gender: 'Female'},
  {ID: 2, FirstName: 'Thomas', LastName: 'Christoper', Gender: 'Male'},
  {ID: 3, FirstName: 'Shiva', LastName: 'Pandy', Gender: 'Male'},
  {ID: 4, FirstName: 'Tina', LastName: 'Robert', Gender: 'Female'}
];
for (var j = 0; j < arrheader.length; j++) {
  tr.append($('<th>').text(arrheader[j]).css('border', 'solid'));
}
table.append(tr);

for (var i = 0; i < array.length; i++) {
  table.append($('<tr>').append(
      $('<td>').text(array[i].ID).css('border', 'solid'),
      $('<td>').text(array[i].FirstName).css('border', 'solid'),
      $('<td>').text(array[i].LastName).css('border', 'solid'),
      $('<td>').text(array[i].Gender).css('border', 'solid')));
}

table.css('border', 'solid');
$('body').append(table);

输出:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

用 jQuery 检查复选框是否被选中

发布时间:2024/03/24 浏览次数:102 分类:JavaScript

在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便