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

下面是关于“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简单生成两个数字之间随机数的方法

    生成两个数字之间的随机数在开发中是很常见的需求,下面我将为大家提供 JS 简单生成两个数字之间随机数的攻略: 使用 Math.random() 方法 Math.random() 方法返回一个介于 0 到 1 之间的随机数。我们可以使用该方法生成两个数字之间的随机数。 在获取到随机数后,我们可以将其范围转换为两个数字之间的随机数,例如要生成 1 到 100 之…

    JavaScript 2023年5月28日
    00
  • javascript小技巧 超强推荐第1/5页

    接下来我将为你详细讲解“javascript小技巧 超强推荐第1/5页”的完整攻略。 简介 这篇攻略讲的是 JavaScript 中的一些小技巧,旨在帮助开发者更加高效地编写代码。本攻略共分为5个部分,本篇讲解第1/5页的内容。 数组合并 在 JavaScript 中,我们常常需要将两个或多个数组合并成一个新数组。常规的方法是使用循环或者concat()函数…

    JavaScript 2023年5月18日
    00
  • 为javascript添加String.Format方法

    为JavaScript添加String.Format方法,可以方便地对字符串进行格式化,提高字符串处理效率和可读性。下面是实现这一功能的完整攻略: 1. 使用原生JavaScript实现 1.1 方法一 可以使用JavaScript的prototype属性,为String对象添加名为format的方法。下面是具体的实现: String.prototype.f…

    JavaScript 2023年5月28日
    00
  • 定时器在页面最小化时不执行实现示例

    实现在页面最小化时不执行定时器的方法可以通过两种方式来实现:一种是通过Page Visibility API,另一种是通过requestAnimationFrame()方法。 通过Page Visibility API Page Visibility API可以检测当前页面是否可见,当页面被最小化或者切换到了其他标签页时,document.hidden属性会…

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

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

    JavaScript 2023年5月27日
    00
  • JavaScript模块详解

    JavaScript模块详解 JavaScript模块是指一段封装了特定代码的独立功能单元,它们遵循一定的规则和标准,让开发者可以在项目中方便地引入和重复使用。其中,ES6中的模块支持是现在开发中最常用的模块方式。在本篇攻略中,我们将讲解如何使用JavaScript模块,包括如何定义、导出和引入模块,并提供两个模块示例。 定义模块 ES6中使用export关…

    JavaScript 2023年5月27日
    00
  • JavaScript encodeURI 和encodeURIComponent

    JavaScript提供了两个用于URL编码的方法:encodeURI()和encodeURIComponent()。 encodeURI() encodeURI()方法用于将整个URL编码,包括特殊字符,但不包括以下字符:/、?、&、=和#。编码后的字符是%xx,其中xx是字符的ASCII十六进制值。 下面是一个使用encodeURI()的示例: …

    JavaScript 2023年5月19日
    00
  • JavaScript实现ASC转汉字及汉字转ASC的方法

    请听我讲解“JavaScript实现ASC转汉字及汉字转ASC的方法”的攻略。 ASC码和汉字的概念 在介绍转换方法之前,我们先来了解一下什么是ASC码和汉字。 ASC码:ASC码是ASCII码的简称,全称是美国信息交换标准代码,用于表示字母、数字和符号,共有128个编码。 汉字:汉字是汉语的书写符号,其数量众多,不同汉字对应不同的Unicode编码,前12…

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