jQuery 列表渲染实战:接口数据循环渲染到页面(含图片地址兼容、空数据处理)
前言后台管理系统最常见的需求就是表格列表渲染拿到后端返回的接口数组数据循环拼接 HTML 渲染到页面。很多新手会遇到几个典型问题接口无数据时不会展示「暂无数据」图片地址有的带完整 http 域名、有的只返回相对路径图片加载失败模板字符串拼接逻辑混乱图片、状态文字不知道怎么嵌入循环不清楚三元表达式在模板内怎么使用今天结合项目实战代码完整讲解一套通用的列表渲染方案。一、整体思路梳理整套渲染流程固定分为 4 步声明空字符串变量 html用来持续拼接所有行 HTML 代码边界判断如果接口返回数组长度为 0直接渲染「暂无数据」终止后续逻辑for 循环遍历接口数组单条数据使用 item 接收优先处理图片字段兼容「完整网络地址 / 相对路径」两种情况无图展示默认文字状态字段直接利用三元表达式渲染不同文字 / 样式使用模板字符串 拼接当前行所有单元格 HTML循环结束后一次性把拼接好的 html 塞入页面容器完成渲染小优化不要在循环里频繁执行.html()多次操作 DOM 性能差全部拼接完成再一次性渲染。二、完整代码实现渲染函数主体javascript运行function renderList(data) {// 定义空字符串承载拼接的htmllet html ‘’;// 【边界处理无数据场景】 if (data.length 0) { html div classtable_row div classtable_cell stylewidth:100%;text-align:center;暂无数据/div /div; $(#tableBody).html(html); return; // 终止函数不再执行循环 } // 循环遍历接口每一条数据 for (let i 0; i data.length; i) { let item data[i]; // item 当前循环的单条数据 // 单独处理图片逻辑 // 默认没有图片展示文字 let imgHtml span stylecolor:#999;font-size:12px;暂无照片/span; // 判断当前条目存在图片字段 if (item.img) { // startsWith 判断字符串开头是否包含http // 兼容两种情况后端返回完整url / 只返回相对路径 let src item.img.startsWith(http) ? item.img : http item.img; // 覆盖默认值生成图片标签 imgHtml img src${src} classtable-img-preview stylewidth:68px;height:43px;object-fit:cover;cursor:pointer;border-radius:4px; alt商品图片; } // 拼接单行HTML html ul classtable_row li classcell_check input typecheckbox classitem-checkbox value${item.id} /li li classcell_id${item.id}/li li classcell_name${item.content}/li !-- 状态渲染三元表达式切换class与文字 -- li classcell_name span classstatus-btn ${item.type 1 ? 1 : 2} ${item.type 1 ? 上架 : 下架} /span /li li classcell_name span classstatus-btn ${item.status 1 ? 1 : 2} ${item.status 1 ? 是 : 否} /span /li !-- 图片单元格直接引入预处理好的imgHtml -- li classcell_name${imgHtml}/li li classcell_name${item.create_time}/li li classcell_name${item.update_time ? item.update_time : item.create_time}/li li classcell_operation button classbtn-edit>变量注入数据循环结束后统一{变量}注入数据 循环结束后统一变量注入数据循环结束后统一(容器).html(html)渲染 DOM渲染完成执行后置方法样式、事件绑定五、拓展小提示不要在循环内执行 DOM 操作多次.append()频繁重绘页面性能更低如果使用分页每次切换页码直接调用renderList(当前页数据)刷新列表编辑、删除按钮带上data-id“${item.id}”后续通过事件委托拿到当前条目 ID如果有多图展示可以把imgHtml改成循环拼接多张图片六、调用示例发起接口请求拿到数据后直接调用渲染函数javascript运行function getList() {$.get(‘/api/getData’, function(res) {// res.data 就是后端返回的数组renderList(res.data);})}// 页面加载初始化getList();

相关新闻

千笔AI与PaperRed:智能写作工具对比与使用技巧

千笔AI与PaperRed:智能写作工具对比与使用技巧

1. 项目背景与工具定位 在学术写作和自考备考领域,时间成本和内容质量始终是两大核心痛点。最近接触到两款智能写作工具——千笔AI写作和PaperRed,它们都主打"一键生成论文"功能,但在实际使用中发现两者的设计理念和适用场景存在明…

2026/7/24 13:51:08阅读更多 →
白底一寸电子版照片自制全攻略:尺寸规范 + 多种实操方法

白底一寸电子版照片自制全攻略:尺寸规范 + 多种实操方法

2026 年求职简历、各类线上考试报名、政务业务办理都会频繁用到白底一寸电子版证件照。不少人不清楚一寸照片官方像素标准,也想找到手机免费制作一寸证件照的可行方案。想要做出可以顺利上传系统、一次通过审核的白底一寸电子照,可以分为前期拍摄、工具处…

2026/7/24 13:51:08阅读更多 →
AI写推荐信总被拒?(92%申请人忽略的3个语义陷阱与精准修复指令)

AI写推荐信总被拒?(92%申请人忽略的3个语义陷阱与精准修复指令)

更多请点击: https://intelliparadigm.com 第一章:AI写推荐信总被拒?(92%申请人忽略的3个语义陷阱与精准修复指令) 当AI生成的推荐信在名校审核中屡遭退回,问题往往不在“语法是否正确”,而在于…

2026/7/24 13:51:07阅读更多 →
Django计算机毕设之 基于 Django 的在线课堂学习互动系统智慧校园线上学习资源管理平台(完整前后端 代码+说明文档+LW,调试定制等)

Django计算机毕设之 基于 Django 的在线课堂学习互动系统智慧校园线上学习资源管理平台(完整前后端 代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/24 15:13:26阅读更多 →
AI内容去机械化:3大策略降低AIGC率提升可读性

AI内容去机械化:3大策略降低AIGC率提升可读性

1. 项目背景与核心挑战 去年初ChatGPT刚火起来那会儿,我接了个内容代运营的活儿。甲方要求每周产出20篇行业分析文章,当时觉得用AI辅助写作简直是天降神器——直到第三周收到客户反馈:"你们的内容AI味太重了,读者投诉像在读机…

2026/7/24 15:13:26阅读更多 →
Docker 存储驱动对比:overlay2、devicemapper 与 btrfs 实测

Docker 存储驱动对比:overlay2、devicemapper 与 btrfs 实测

Docker 存储驱动对比:overlay2、devicemapper 与 btrfs 实测 一、Docker 镜像拉取 2 分钟,而同样的镜像在另一台机器上 10 秒就拉完了 Docker 镜像拉取慢、容器启动慢、磁盘占用高——这三个问题的根因往往指向同一个东西:存储驱动&#xff0…

2026/7/24 15:13:26阅读更多 →
大模型技术入门:从Transformer到实践应用全解析

大模型技术入门:从Transformer到实践应用全解析

1. 大模型入行全攻略:从方向选择到避坑指南作为一名在大模型领域摸爬滚打多年的从业者,我见过太多新人满怀热情入行却踩坑无数的案例。这篇文章将系统梳理大模型领域的学习路径、核心技术栈和常见陷阱,帮助你在AI浪潮中找准方向。大模型技术正…

2026/7/24 15:13:26阅读更多 →
C++反向迭代器适配器实现:从原理到实战

C++反向迭代器适配器实现:从原理到实战

1. 项目概述:为什么我们需要反向迭代器适配器?在C标准库的日常使用中,我们早已习惯了std::vector、std::list、std::map等容器的rbegin()和rend()方法,它们返回的反向迭代器让我们能够轻松地从后往前遍历容器。但你是否想过&#…

2026/7/24 15:13:26阅读更多 →
Magic Leap转型B2B:光波导与AI技术如何重塑AR智能眼镜未来

Magic Leap转型B2B:光波导与AI技术如何重塑AR智能眼镜未来

Magic Leap 这家曾经以消费级 AR 眼镜闻名的公司,近期宣布了一项重大战略转型:从直接面向消费者的硬件厂商,转向成为专注于 AI 智能眼镜光波导技术的 B2B 供应商。伴随这次转型的是近 200 人的裁员,标志着公司业务重心彻底转向企业…

2026/7/24 15:11:25阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →