如何在jQuery each循环中检测空数据并输出指定提示?
问题分析与解决办法
你的代码核心问题在于:当data.items是长度为0的空数组时,$.each()根本不会进入循环体,所以你写在循环内部的判断代码永远不会执行,自然看不到预期的输出。
正确的处理方式
你需要在循环外部先判断data.items的状态,而不是在循环里检查单个item:
$.ajax({ url: "https://example.com/cart/change.json", dataType: "jsonp", data: { id: remove_id, quantity: 0 }, success: function(data) { // 先判断items数组是否为空(同时兼容字段不存在的情况) if (!data.items || data.items.length === 0) { console.log('No data has been returned'); } else { // 有数据时再遍历处理单个item $.each(data.items, function(index, item) { // 这里可以添加非空item的处理逻辑 console.log('当前item:', item); }); } } });
补充说明
- 加上
!data.items的判断是为了避免接口返回的data中没有items字段时出现报错,让代码更健壮 - 如果后续需要处理单个item为空的场景,也要先确保数组本身有内容,否则循环不会触发内部逻辑
内容的提问来源于stack exchange,提问作者user2885544
相关产品推荐
相关产品推荐

