新闻中心
使用 jQuery 从 JSON 文件中提取变量并求和

本文档将指导你如何使用 jQuery 从 JSON 文件中提取数据,并将提取的数值变量进行求和,最终将结果展示在网页上。我们将通过一个实际案例,详细讲解代码实现,帮助你掌握这一实用技能。
从 JSON 文件中提取数据并动态更新表格
假设你有一个 JSON 文件,其中包含了 Str*a 活动的数据,你需要从该文件中提取最近 5 次活动的距离数据,并将这些距离数据相加,最终在网页表格中显示总距离。
核心代码实现
以下是使用 jQuery 实现该功能的代码示例:
function toTime(seconds) {
var date = new Date(null);
date.setSeconds(seconds);
return date.toISOString().substr(11, 8);
}
$(function() {
$.get('/running/str*a_activities.json', function(data) {
console.log(data);
let aggregate = 0; // 初始化总距离变量
for (let i = 0; i < 5; i++) {
$("#start_date_local_" + (i + 1)).html((data[i].start_date_local).slice(0, 10));
$("#activity" + (i + 1) + "type").html(data[i].type);
$("#activity" + (i + 1) + "name").html(data[i].name);
$("#activity" + (i + 1) + "distance").html(((data[i].distance) / 1000).toFixed(3));
$("#elevation" + (i + 1)).html(data[i].total_elevation_gain);
$("#moving_time_" + (i + 1)).html(toTime(data[i].moving_time));
if (data[i].distance > 0) {
$("#time_km_" + (i + 1)).html(toTime(((data[i].moving_time) / ((data[i].distance) / 1000))).slice(3));
}
aggregate += Number(data[i].distance); // 累加距离
}
// 将总距离显示在页面上
$("#activitytotaldistance").html((aggregate / 1000).toFixed(3));
});
});代码详解
toTime(seconds) 函数: 该函数用于将秒数转换为 HH:MM:SS 格式的时间字符串。
$(function() { ... });: 这是一个 jQuery 的简写方式,等同于 $(document).ready(function() { ... });,表示在文档加载完成后执行其中的代码。
$.get('/running/str*a_activities.json', function(data) { ... });: 使用 jQuery 的 $.get() 方法从 /running/str*a_activities.json URL 获取 JSON 数据。当数据成功获取后,执行回调函数。
let aggregate = 0;: 声明并初始化一个名为 aggregate 的变量,用于存储总距离。
Shell脚本编写基础 中文WORD版
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
25
查看详情
for (let i = 0; i : 使用一个循环遍历 JSON 数据中的前 5 个活动。
$("#start_date_local_" + (i + 1)).html((data[i].start_date_local).slice(0, 10));: 使用 jQuery 选择器根据 ID 找到对应的 HTML 元素,并使用 .html() 方法将 JSON 数据中的 start_date_local 属性值(截取前 10 个字符)设置为该元素的内容。 其他类似的行代码,用于将 JSON 数据中的其他属性值更新到对应的 HTML 元素中。
aggregate += Number(data[i].distance);: 将当前活动的距离值累加到 aggregate 变量中。 Number() 函数用于将字符串转换为数字,确保可以正确进行加法运算。
$("#activitytotaldistance").html((aggregate / 1000).toFixed(3));: 循环结束后,将计算得到的总距离(除以 1000 转换为公里,并保留 3 位小数)更新到 ID 为 activitytotaldistance 的 HTML 元素中。
HTML 结构
确保你的 HTML 结构中包含以下元素,以便代码可以正确地找到并更新数据:
<div class="str*a-widget">
<table class="str*a-stats">
<tr>
<td class="heading" colspan="1">Date</td>
<td class="heading" colspan="1">Type</td>
<td class="heading" colspan="1">Title</td>
<td class="heading" colspan="1">Distance</td>
<td class="heading" colspan="1">Height Gain</td>
<td class="heading" colspan="1">Moving Time</td>
<td class="heading" colspan="1">Time/Km</td>
</tr>
<tr>
<td><div id="start_date_local_1"></div></td>
<td><div id="activity1type"></div></td>
<td><div id="activity1name"></div></td>
<td><div><span id="activity1distance"></span> Km</div></td>
<td><div><span id="elevation1"></span>m</div></td>
<td><div id="moving_time_1"></div></td>
<td><div id="time_km_1"></div></td>
</tr>
<tr>
<td><div id="start_date_local_2"></div></td>
<td><div id="activity2type"></div></td>
<td><div id="activity2name"></div></td>
<td><div><span id="activity2distance"></span> Km</div></td>
<td><div><span id="elevation2"></span>m</div></td>
<td><div id="moving_time_2"></div></td>
<td><div id="time_km_2"></div></td>
</tr>
<tr>
<td><div id="start_date_local_3"></div></td>
<td><div id="activity3type"></div></td>
<td><div id="activity3name"></div></td>
<td><div><span id="activity3distance"></span> Km</div></td>
<td><div><span id="elevation3"></span>m</div></td>
<td><div id="moving_time_3"></div></td>
<td><div id="time_km_3"></div></td>
</tr>
<tr>
<td><div id="start_date_local_4"></div></td>
<td><div id="activity4type"></div></td>
<td><div id="activity4name"></div></td>
<td><div><span id="activity4distance"></span> Km</div></td>
<td><div><span id="elevation4"></span>m</div></td>
<td><div id="moving_time_4"></div></td>
<td><div id="time_km_4"></div></td>
</tr>
<tr>
<td><div id="start_date_local_5"></div></td>
<td><div id="activity5type"></div></td>
<td><div id="activity5name"></div></td>
<td><div><span id="activity5distance"></span> Km</div></td>
<td><div><span id="elevation5"></span>m</div></td>
<td><div id="moving_time_5"></div></td>
<td><div id="time_km_5"></div></td>
</tr>
<tr>
<td><div>5-day totals</div></td>
<td><div>-</div></td>
<td><div>-</div></td>
<td><div><span id="activitytotaldistance"></span>Km</div></td>
<td><div><span id="totalelevation"></span>m</div></td>
<td><div>-</div></td>
<td><div>-</div></td>
</tr>
</table>
</div>注意事项
- 确保 jQuery 库已经正确引入到你的 HTML 文件中。
- JSON 文件的 URL (/running/str*a_activities.json) 需要根据你的实际情况进行修改。
- 如果 JSON 数据结构与示例代码中的结构不一致,你需要相应地修改代码以适应你的数据结构。
- 错误处理:在实际应用中,应该添加错误处理机制,例如在 $.get() 方法的回调函数中检查请求是否成功,以及在数据处理过程中处理可能出现的异常情况。
总结
通过本文档,你学习了如何使用 jQuery 从 JSON 文件中提取数据,并将提取的数值变量进行求和,最终将结果动态地展示在网页上。 这个方法可以应用于各种需要从 JSON 数据源动态更新网页内容的场景。 记住,理解 JSON 数据结构和 jQuery 选择器的使用是关键。
以上就是使用 jQuery 从 JSON 文件中提取变量并求和的详细内容,更多请关注其它相关文章!
# 绑定
# 郑州百度seo优化技术网站推广
# 玉溪seo公司选择20火星
# 乐安网站seo推广
# 海淀做网站优化
# 微博营销不适宜推广什么
# 新津网站建设服务
# 江小白的营销推广方式
# 新疆网络推广网站有哪些
# 内蒙古视频号关键词排名
# 织金营销抖音推广怎么做
# 新到
# 输入框
# 如何使用
# jquery
# 文档
# 选择器
# 转换为
# 并将
# 回调
# 数据结构
# gate
# lsp
# ai
# 回调函数
# json
# js
# html
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
随机参数递归函数的基准调用次数与时间复杂度探究
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
基于动态规划的房屋花卉种植最小成本算法详解
J*aScript设计模式实践_j*ascript代码优化
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
CSS Grid如何控制元素对齐_align-items与justify-items组合使用
MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
J*aScript异步迭代器_j*ascript异步遍历
PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程
微信网页版登录教程_微信网页版登录入口在哪
百度浏览器字体显示异常偏小_百度浏览器字体渲染修复方案
谷歌邮箱注册显示错误Gmail服务器异常与延迟处理
QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址
AO3官网镜像链接 Archive of Our Own同人文在线浏览
J*aScript生成器_j*ascript异步迭代
PHP中高效并行检查多链接状态的教程
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
小米汽车11月交付量突破40000台!雷军:将继续努力
新三国志曹操传110级星符试炼夏侯渊极难攻略
如何使 Jest 模拟函数默认抛出错误以提高测试效率
使用J*aScript检测输入元素是否包含在特定类中
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
如何在 Excel Online 和 Google 表格中更改日期格式
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
千牛数据看板网页版_千牛数据看板网页版访问方法
火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧
mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析
php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】
优化Django表单:提交验证失败后保留用户输入
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
J*a递归快速排序中静态变量的状态管理与陷阱
HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
Go语言中Map值调用指针接收器方法的限制与应对
J*aScript动态修改指定div内所有a标签样式指南
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
支付宝如何管理隐私设置_支付宝隐私保护的配置技巧
C++如何实现异步操作_C++11使用std::future和std::async进行异步编程
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
Bilibili动漫最新防封地址发布-Bilibili动漫2025年最稳正版入口推荐
高德地图沿途添加点失败如何解决 高德多点规划方法
包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址
poki网页游戏推荐_poki免费游戏平台入口
腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法


2025-10-31
浏览次数:次
返回列表