JavaScript与DOM组合动态创建表格实例

下面我来详细讲解如何使用JavaScript与DOM组合动态创建表格实例。

简介

在Web开发中,表格是数据展示的常用形式之一,但是在页面中手动编写表格代码比较繁琐,因此我们可以使用JavaScript与DOM结合创建表格。

创建表格的步骤

1.创建表格元素

首先需要使用JavaScript创建表格元素,可以使用document.createElement方法创建表格元素。如下所示:

var table = document.createElement('table');

这段代码会创建一个table元素。

2.创建表头

接下来需要创建表头,可以使用insertRow方法创建表格行元素,再使用insertCell方法创建单元格元素,然后添加到表头行中。如下所示:

var headRow = table.insertRow(0);  // 创建表头行元素

var th1 = document.createElement('th');  // 创建表头单元格元素
th1.innerHTML = 'ID';  // 设置单元格内容
headRow.appendChild(th1);  // 添加到表头行中

var th2 = document.createElement('th');
th2.innerHTML = '姓名';
headRow.appendChild(th2);

var th3 = document.createElement('th');
th3.innerHTML = '年龄';
headRow.appendChild(th3);

这段代码会创建一个表格,表头包含3个单元格(ID、姓名、年龄)。

3.插入数据

最后需要插入数据,可以使用insertRow方法创建行元素,然后使用insertCell方法创建单元格元素,再设置单元格内容,最后添加到行中即可。如下所示:

for (var i = 0; i < data.length; i++) {  // data为数据数组
    var row = table.insertRow(-1);  // 创建数据行元素

    var cell1 = row.insertCell(0);  // 创建单元格元素
    cell1.innerHTML = data[i].id;  // 设置单元格内容

    var cell2 = row.insertCell(1);
    cell2.innerHTML = data[i].name;

    var cell3 = row.insertCell(2);
    cell3.innerHTML = data[i].age;
}

这段代码会将数据数组中的数据插入到表格中。

示例

下面通过两个示例演示如何使用JavaScript与DOM结合创建表格。

示例一:静态数据表格

首先创建一个HTML页面,然后在页面中添加一个按钮和一个用于展示表格的div。当用户点击按钮时,会在div中动态创建一个表格,并将静态数据插入到表格中。

HTML代码如下:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>示例一:静态数据表格</title>
</head>
<body>
    <button onclick="createTable()">创建表格</button>
    <div id="table-container"></div>
</body>
</html>

JavaScript代码如下:

function createTable() {
    var data = [
        {id: 1, name: '张三', age: 20},
        {id: 2, name: '李四', age: 22},
        {id: 3, name: '王五', age: 25},
        {id: 4, name: '赵六', age: 30}
    ];

    var container = document.getElementById('table-container');

    var table = document.createElement('table');
    container.appendChild(table);

    var headRow = table.insertRow(0);

    var th1 = document.createElement('th');
    th1.innerHTML = 'ID';
    headRow.appendChild(th1);

    var th2 = document.createElement('th');
    th2.innerHTML = '姓名';
    headRow.appendChild(th2);

    var th3 = document.createElement('th');
    th3.innerHTML = '年龄';
    headRow.appendChild(th3);

    for (var i = 0; i < data.length; i++) {
        var row = table.insertRow(-1);

        var cell1 = row.insertCell(0);
        cell1.innerHTML = data[i].id;

        var cell2 = row.insertCell(1);
        cell2.innerHTML = data[i].name;

        var cell3 = row.insertCell(2);
        cell3.innerHTML = data[i].age;
    }
}

当用户点击按钮时,会创建一个表格,并将静态数据插入到表格中。

示例二:动态数据表格

首先创建一个HTML页面,然后在页面中添加一个输入框和一个用于展示表格的div。当用户输入文本时,会按照文本内容查询数据,并将查询结果动态展示在表格中。

HTML代码如下:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>示例二:动态数据表格</title>
</head>
<body>
    <input type="text" id="query-input" placeholder="请输入查询内容">
    <button onclick="query()">查询</button>
    <div id="table-container"></div>
</body>
</html>

JavaScript代码如下:

var data = [
    {id: 1, name: '张三', age: 20},
    {id: 2, name: '李四', age: 22},
    {id: 3, name: '王五', age: 25},
    {id: 4, name: '赵六', age: 30}
];

function query() {
    var queryText = document.getElementById('query-input').value;
    var queryResult = [];

    for (var i = 0; i < data.length; i++) {
        if (data[i].name.indexOf(queryText) >= 0) {
            queryResult.push(data[i]);
        }
    }

    var container = document.getElementById('table-container');
    container.innerHTML = '';

    if (queryResult.length > 0) {
        var table = document.createElement('table');
        container.appendChild(table);

        var headRow = table.insertRow(0);

        var th1 = document.createElement('th');
        th1.innerHTML = 'ID';
        headRow.appendChild(th1);

        var th2 = document.createElement('th');
        th2.innerHTML = '姓名';
        headRow.appendChild(th2);

        var th3 = document.createElement('th');
        th3.innerHTML = '年龄';
        headRow.appendChild(th3);

        for (var i = 0; i < queryResult.length; i++) {
            var row = table.insertRow(-1);

            var cell1 = row.insertCell(0);
            cell1.innerHTML = queryResult[i].id;

            var cell2 = row.insertCell(1);
            cell2.innerHTML = queryResult[i].name;

            var cell3 = row.insertCell(2);
            cell3.innerHTML = queryResult[i].age;
        }
    } else {
        container.innerHTML = '查询结果为空';
    }
}

当用户输入内容并点击查询按钮时,会动态生成表格,并将查询结果插入到表格中。

以上就是使用JavaScript与DOM结合动态创建表格的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript与DOM组合动态创建表格实例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程

    下面提供一份详细的攻略,分为以下几个部分。 实现效果 实现一个生成国庆风头像的小工具,将用户输入的头像图片加上国旗和五角星等元素,并生成新的头像图片。 实现过程 准备工作 首先,我们需要准备一些素材,如国旗图片和五角星图片,用于后面合成头像。可以在网络上下载这些图片进行使用。然后,我们需要引入canvas标签,因为我们要使用canvas来进行头像的合成。这里…

    JavaScript 2023年6月11日
    00
  • 深入理解前端字节二进制知识以及相关API

    当前,前端对二进制数据有许多的API可以使用,这丰富了前端对文件数据的处理能力,有了这些能力,就能够对图片等文件的数据进行各种处理。本文将着重介绍一些前端二进制数据处理相关的API知识,如Blob、File、FileReader、ArrayBuffer、TypeArray、DataView等等。 字节 在介绍各种API之前,我们需要先了解下和字节有关的知识。…

    JavaScript 2023年5月10日
    00
  • chrome浏览器如何断点调试异步加载的JS

    要断点调试异步加载的JS,需要使用Chrome浏览器的开发者工具。下面是详细的步骤: 打开网页,按F12调出开发者工具。 在开发者工具中,点击Sources(或快捷键Ctrl + Shift + S)。 在Sources面板里,选择要调试的JS文件并打开。 在JS文件中找到要调试的代码行,点击行号可以在该行设置断点。 在代码中使用debugger语句,同样可…

    JavaScript 2023年6月11日
    00
  • 原生js实现3D轮播图

    下面是完整的“原生js实现3D轮播图”的攻略: 1. 确定轮播图的基本结构和样式 首先,需要明确轮播图的结构和样式。通常情况下,我们会使用一个外层容器作为整个轮播图的父容器,然后在其内部创建一个可滚动的容器,用来存放每一张轮播图的卡片;同时,在卡片内部再创建一个容器用来存放图片和其他信息。以下是一个示例的HTML代码: <div class=&quot…

    JavaScript 2023年6月11日
    00
  • 深入解析el-col-group强大且灵活的Element表格列组件

    深入解析el-col-group强大且灵活的Element表格列组件 什么是el-col-group? el-col-group是Element UI表格中列的分组或者嵌套的组件。与el-table-column相比,它具有更强大和灵活的功能。 如何使用el-col-group? 使用el-col-group前需要引入Element UI组件库,然后在代码中…

    JavaScript 2023年6月10日
    00
  • 5种方法告诉你如何使JavaScript 代码库更干净

    5种方法告诉你如何使JavaScript 代码库更干净 在开发 JavaScript 代码时,保持代码库干净是非常重要的。这可以提高代码的可读性和可维护性,使代码更易于维护。下面是几种方法可以帮助你保持 JavaScript 代码库的干净。 1. 使用严格模式 JavaScript 的 “use strict” 指令可以让代码在严格模式下执行。这种模式可以避…

    JavaScript 2023年6月11日
    00
  • js获取日期:昨天今天和明天、后天

    获取日期是 JavaScript 中比较常见的操作。为了方便地获取昨天、今天、明天、后天等日期信息,可以使用 JavaScript 的 Date 对象自带的方法来实现。 以下是获取昨天、今天、明天和后天日期的完整攻略。 获取当前日期 首先需要获取当前日期,可以使用 JavaScript 中的 Date 对象,使用 new Date() 方式来创建一个 Dat…

    JavaScript 2023年5月27日
    00
  • Javascript 面向对象 继承

    JavaScript 是一门面向对象的编程语言,因此在 JavaScript 中实现继承的方式和其他面向对象编程语言如 Java 和 Python 有些区别。下面是一个完整的 JavaScript 面向对象继承攻略,示例说明了两种常用的继承方式。 1. 构造函数继承 构造函数继承是通过在子类构造函数中调用父类构造函数来继承父类属性和方法,这种继承方式存在一个…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部