js与jQuery实现获取table中的数据并拼成json字符串操作示例

yizhihongxing

下面是关于“js与jQuery实现获取table中的数据并拼成json字符串操作示例”的完整攻略。

1. 操作示例简介

在网站的业务中,经常需要从table中获取数据,并转化成JSON对象,便于传输数据或者进行数据处理。这里提供两种实现方式,分别是使用原生js和jQuery库。

2. 使用原生js获取数据并拼成json字符串

2.1. 获取table中数据

我们可以使用HTML DOM操作,通过获取table元素来操作。

var table = document.getElementById('tableId');
var rows = table.rows; //获取所有行

这里的tableId指的是需要获取数据的table元素的标识符。

2.2. 将获取到的数据存储到JSON对象中

我们可以通过循环遍历table中的每一行,将每行对应的数据存储到JSON对象中。

下面是实现的示例代码:

var jsonData = []; // 存储table数据的JSON对象
for (var i = 0; i < rows.length; i++) {
  var cols = rows[i].cells; //获取当前行的所有列
  var rowData = {}; //存储当前行数据的JSON对象
  for (var j = 0; j < cols.length; j++) {
    rowData[cols[j].getAttribute('name')] = cols[j].innerHTML;//设置当前行指定列的值
  }
  jsonData.push(rowData); //将当前行数据保存到JSON对象中
}

这里的name属性用来指定每一列数据对应的属性名。我们可以通过自定义name属性,方便地将数据统一存储到JSON对象中。

2.3. 将JSON对象转化为json字符串

最后,我们可以使用JSON.stringify()函数来将JSON对象转化为json字符串。下面是示例代码:

var jsonString = JSON.stringify(jsonData); //将JSON对象转化为json字符串

2.4. 完整代码示例

下面是完整的示例代码实现:

<table id="tableId">
  <thead>
    <tr>
      <th name="id">编号</th>
      <th name="name">姓名</th>
      <th name="age">年龄</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td name="id">1</td>
      <td name="name">张三</td>
      <td name="age">18</td>
    </tr>
    <tr>
      <td name="id">2</td>
      <td name="name">李四</td>
      <td name="age">20</td>
    </tr>
    <tr>
      <td name="id">3</td>
      <td name="name">王五</td>
      <td name="age">22</td>
    </tr>
  </tbody>
</table>

<script>
var table = document.getElementById('tableId');
var rows = table.rows; //获取所有行

var jsonData = []; // 存储table数据的JSON对象
for (var i = 0; i < rows.length; i++) {
  var cols = rows[i].cells; //获取当前行的所有列
  var rowData = {}; //存储当前行数据的JSON对象
  for (var j = 0; j < cols.length; j++) {
    rowData[cols[j].getAttribute('name')] = cols[j].innerHTML;//设置当前行指定列的值
  }
  jsonData.push(rowData); //将当前行数据保存到JSON对象中
}

var jsonString = JSON.stringify(jsonData); //将JSON对象转化为json字符串
console.log(jsonString);
</script>

3. 使用jQuery库获取数据并拼成json字符串

接下来我们将介绍使用jQuery库实现获取table中的数据并拼成json字符串的示例。

3.1. 获取table中数据

我们可以使用jQuery('table tr')方法来获取table中所有的行。

下面是示例代码:

var rows = jQuery('table tr');

3.2. 将获取到的数据存储到JSON对象中

同样,我们可以通过循环来遍历每一行数据,并将其存储到JSON对象中。

下面是示例代码:

var jsonData = []; // 存储table数据的JSON对象
rows.each(function() {
  var cols = jQuery(this).find('td, th'); //获取当前行的所有列
  var rowData = {}; //存储当前行数据的JSON对象
  cols.each(function() {
    rowData[jQuery(this).attr('name')] = jQuery(this).html(); //设置当前行指定列的值
  })
  jsonData.push(rowData); //将当前行数据保存到JSON对象中
})

3.3. 将JSON对象转化为json字符串

同样使用JSON.stringify()函数来将JSON对象转化为json字符串。

下面是示例代码:

var jsonString = JSON.stringify(jsonData); //将JSON对象转化为json字符串

3.4 完整代码示例

下面是完整的示例代码实现:

<table>
  <thead>
    <tr>
      <th name="id">编号</th>
      <th name="name">姓名</th>
      <th name="age">年龄</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td name="id">1</td>
      <td name="name">张三</td>
      <td name="age">18</td>
    </tr>
    <tr>
      <td name="id">2</td>
      <td name="name">李四</td>
      <td name="age">20</td>
    </tr>
    <tr>
      <td name="id">3</td>
      <td name="name">王五</td>
      <td name="age">22</td>
    </tr>
  </tbody>
</table>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
var rows = jQuery('table tr');

var jsonData = []; // 存储table数据的JSON对象
rows.each(function() {
  var cols = jQuery(this).find('td, th'); //获取当前行的所有列
  var rowData = {}; //存储当前行数据的JSON对象
  cols.each(function() {
    rowData[jQuery(this).attr('name')] = jQuery(this).html(); //设置当前行指定列的值
  })
  jsonData.push(rowData); //将当前行数据保存到JSON对象中
})

var jsonString = JSON.stringify(jsonData); //将JSON对象转化为json字符串
console.log(jsonString);
</script>

以上便是两种获取table中数据并拼成json字符串的实现方式。希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js与jQuery实现获取table中的数据并拼成json字符串操作示例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js中forEach,for in,for of循环的用法示例小结

    请看下面的文本。 js中forEach,for in,for of循环的用法示例小结 在JavaScript中,有多种迭代数组和对象的方式。 下面是三种常见的循环的用法: forEach,for in,和for of。接下来将详细介绍它们的用法和示例。 forEach循环 JavaScript中的forEach()方法用于迭代逐个数组元素,并为每个元素执行回…

    JavaScript 2023年5月28日
    00
  • 原生JS封装Ajax插件(同域、jsonp跨域)

    下面就来详细讲解一下如何用原生JS封装Ajax插件,支持同域和jsonp跨域请求。 1. 目标功能 我们的目标是封装一个通用的 Ajax 插件,能够支持同域和跨域请求(使用 Jsonp 技术),并兼容各种浏览器。 根据我们的需求,我们需要实现以下两个功能: 发送 HTTP 请求并获取返回数据。 支持跨域请求。 2. 发送 HTTP 请求并获取返回数据 我们需…

    JavaScript 2023年5月27日
    00
  • jQuery焦点图切换简易插件制作过程全纪录

    下面我将详细讲解“jQuery焦点图切换简易插件制作过程全纪录”。 一、前言 做一个好用的网站,除了有好的设计外,交互效果和动画效果会让用户的体验更好。当我们需要制作焦点图时,可以选择使用第三方的插件。但为了更好地理解焦点图的制作原理,我们可以自己来手写一个简易焦点图切换插件。 二、需求分析 在开始编码之前,我们需要考虑一下插件的需求: 可以实现无缝轮播焦点…

    JavaScript 2023年6月11日
    00
  • js弹出框、对话框、提示框、弹窗实现方法总结(推荐)

    JS弹出框、对话框、提示框、弹窗实现方法总结 本篇文章将讲解JS弹出框、对话框、提示框、弹窗的实现方法,并提供两个示例以便更好地理解。 弹出框的实现 使用alert()函数 alert()函数是JS提供的一种简单的弹窗实现方式,当需要在浏览器中弹出一些简单的信息提示时可以方便地使用该函数。 alert(‘Hello world!’); 使用confirm()…

    JavaScript 2023年6月11日
    00
  • JS幻想 读取二进制文件第2/2页

    浏览器中读取二进制文件需要使用 FileReader 和 Blob 对象。下面介绍一下具体的操作步骤。 步骤一:获取文件 通过文件选择器或者其他方式获取二进制文件的实例。可以使用 <input> 标签加上 accept 属性来实现文件选择器。 <input type="file" accept=".bin&qu…

    JavaScript 2023年5月27日
    00
  • 如何在Vue项目中添加接口监听遮罩

    在Vue项目中,可以使用Vue的全局事件总线和axios拦截器配合使用,实现添加接口监听遮罩的效果。 以下是具体的步骤: 第一步:创建全局事件总线 在Vue项目的入口文件(例如main.js)中,创建全局事件总线: import Vue from ‘vue’ const EventBus = new Vue() export default EventBus…

    JavaScript 2023年6月11日
    00
  • js以对象为索引的关联数组

    “以对象为索引的关联数组”在JavaScript中被称为“对象”,也是一种常见的数据结构。从表面上看,它与其他编程语言中的字典或散列表/哈希表类似,但实际上更加灵活和强大。 基本概念 JavaScript中的对象是一组键/值对,其中键是字符串(或符号)类型,而值可以是任何数据类型(包括另一个对象)。对象中的键是唯一的,且不允许重复,但同一个对象的多个键可以指…

    JavaScript 2023年6月10日
    00
  • Java基础之List内元素的排序性能对比

    Java基础之List内元素的排序性能对比 在Java中,我们经常需要对List中的元素进行排序,但不同的排序算法对于不同的元素数量和类型,性能表现并不相同。本篇文章将对Java中常见的三种排序算法进行性能测试和对比,帮助开发者在选择排序算法时能够更好地权衡性能和时间复杂度。 常见的排序算法 在Java中,常见的排序算法有以下三种: 冒泡排序 插入排序 快速…

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