在JavaScript中用json对象创建一个table表格——实战练习

简介: 在JavaScript中用json对象创建一个table表格——实战练习

背景

为了练习和使用js中的创建节点、追加节点以及练习生成json对象和遍历集合。对现阶段学习到的js中的DOM文档对象模型进行阶段总结并进行实践练习。

使用json对象的形式创建table表格

我们先来想一想如何进行实现,实现的步骤有哪几步。
1.首先我们需要生成一个table,并将这个元素节点追加到body中。

2.声明json个格式的字符串,申明json对象

3.根据json对象的长度进行循环,每一次循环都生成一个tr,并将tr追加到table中去。

4.对json对象中的元素进行遍历,并生成td将元素赋值到td中,最后将td追加到tr中。

代码进行实现

<!DOCTYPE html>
<html> 
  <head>
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
      // json格式的字符串
      var str = '[{name:"David",sex:"男",age:19},{name:"Jones",sex:"女",age:29},{name:"Rebecca",sex:"女",age:39}]';
      onload = function() {
        // 生成一个table,然后追加到body中
        // 里面遍历json对象生成里面的tr
        // 每一个json对象中的每一个成员(for-in)得到td标签
        // 1、生成table
        var table = document.createElement("table");
        //设置边框
        table.border = "1";
        // 2、得到json格式的对象
        var jsons = new Function("return " + str)();
        // 3、循环这个数组
        for(var i = 0; i < jsons.length; i++) {
          // 4、生成每一个行
          // 创建tr标签
          var tr = document.createElement("tr");
          // 5、添加td,就需要遍历每一个对象中的成员
          for(var k in jsons[i]) {
            // 6、创建td
            var td = document.createElement("td");
            td.appendChild(document.createTextNode(jsons[i][k]));
            // 7、追加td
            tr.appendChild(td);
          }
          // 循环结束,就得到一个行
          // 将行追加到table
          table.appendChild(tr);
        }
        // 将table加到body中
        document.getElementsByTagName("body")[0].appendChild(table);
      };
    </script>
  </head>
  <body>
  </body>
</html>

实现效果图

涉及到的知识点

DOM树中的添加节点,追加节点

创建节点
1.元素节点:var node=document.createElement(“标签名”);


2.文本节点:var textNode=document.createTextNode(“文本”);

<节点>.innerHTML=“文本”;//这里可以使用HTML

<节点>.innerText=“文本”;//非标准,浏览器兼容问题(不建议使用)


3.属性节点

<节点>.setAttribute(…,…);

//标准方法,符合xml规范,可以添加任意的属性


追加节点

1.追加到尾部:

父节点.appendChild(子节点);


2.插入到中间(插入到某一个元素的前面)

父节点.insertBefore(新元素,就元素);

声明json格式,创建json对象

声明json格式的字符串

// json格式的字符串
      var str = '[{name:"David",sex:"男",age:19},{name:"Jones",sex:"女",age:29},{name:"Rebecca",sex:"女",age:39}]';

创建Jason格式的对象

var jsons = new Function("return " + str)();
目录
相关文章
|
11天前
|
JavaScript 前端开发
JavaScript遍历数组和对象常用方法总结
以上代码展示了数组和对象的多种遍历方法。对于数组,使用了传统的 `for` 循环、`for...in` 和 ES6 的 `for...of` 进行遍历;对于对象,则通过 `for...in`、`Object.keys()`、`Object.values()` 和 `Object.entries()` 来获取键值对。`for...of` 循环适用于遍历具有迭代协议的数据结构,如数组、字符串等,而对象遍历则更多地依赖于 `Object` 方法来获取其属性集合。
JavaScript遍历数组和对象常用方法总结
|
8天前
|
JavaScript
Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
这篇文章介绍了Nest.js服务在应用程序引导过程中,TypeScript编译对效率的影响,以及如何通过使用webpackHMR来降低应用实例化的时间。文章包含具体教程,指导读者如何在项目中安装依赖包,并在根目录下新增webpack配置文件webpack-hmr.config.js来调整HMR相关的配置。最后,文章总结了如何通过自定义webpack配置来更好地控制HMR行为。
|
22天前
|
JavaScript 前端开发 索引
JS遍历数组里数组下的对象,根据数组中对象的某些值,组合成新的数组对象
这篇文章介绍了如何在JavaScript中遍历数组里数组下的对象,并根据对象的某些属性值组合成一个新的数组对象。主要内容包括使用ES6的`for...of`循环来遍历数组对象,然后根据需要提取对象中的属性值,并将它们放入新的对象中,最终形成一个新的对象数组以供使用。
|
25天前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
6天前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
14 1
JavaScript基础知识-枚举对象中的属性
|
10天前
|
SQL 运维 监控
Nest.js 实战 (十):使用 winston 打印和收集日志记录
这篇文章介绍了在Nest服务中如何使用Winston记录日志。文章首先强调了日志记录在后台服务中的重要性,接着提到Nest默认的内部日志记录器,并指出可以通过@nestjs/common包中的Logger类来全面控制日志系统的行为。文章还提到,为了在生产环境中实现更高级的日志功能,可以使用如Winston之类的Node.js日志包。接下来,文章介绍了如何在Nest服务中使用Winston记录日志,包括安装相关依赖、创建winston配置文件以及实现简单的日志记录示例。最后,文章指出更高级的自定义日志功能需要读者自己去探索。
Nest.js 实战 (十):使用 winston 打印和收集日志记录
|
7天前
|
JavaScript 前端开发
JavaScript基础知识-对象的基本操作
关于JavaScript对象基本操作的基础知识文章。
21 2
|
7天前
|
JavaScript 前端开发
JavaScript基础知识-对象字面量
文章介绍了JavaScript中对象字面量的创建和使用,包括基本语法、属性赋值以及如何在控制台输出对象属性。
14 0
JavaScript基础知识-对象字面量
|
8天前
|
JavaScript 前端开发 API
Javaweb之javascript的BOM对象的详细解析
BOM为Web开发提供了强大的API,允许开发者与浏览器进行深入的交互。合理使用BOM中的对象和方法,可以极大地增强Web应用的功能性和用户体验。需要注意的是,BOM的某些特征可能会在不同浏览器中表现不一致,因此在开发过程中需要进行仔细的测试和兼容性处理。通过掌握BOM,开发者能够制作出更丰富、更动态、更交互性的JavaWeb应用。
11 1
|
15天前
|
JavaScript 数据安全/隐私保护 Python
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
19 4

热门文章

最新文章

下一篇
DDNS