juqery,ajax在for循环中,为什么ajax中的success函数只显示循环的最后一个内容

img

img

juqery,ajax在for循环中,为什么ajax中的success函数只显示循环的最后一个内容,上网查大部分都说是要ajax设置同步,但是我设置同步后,显示数据还是最后一个。还有说可以在把ajax写一个方法,但是调用的话,最后还只显示最后一条数据,而没有显示两条数据。

是的,不是同步异步的问题
需要改进两个部分
1)你不应该在一个for循环里请求后台
在这里你可以在把shopIds带到后台
2)在success里,对数组对象的循环,然后使用+号来连接字符串是不行的,应该用for循环+push,然后用join
大概是这样:
let list = array()

for (let j=0; j<data.length; j++){
    let item = data[j]
    list.push(....)

}
let listStr = list && list.length > 0 ? list.join() : ''

3)回答不好请斧正,觉得可行望采纳,谢谢

如果会用 Promise 的话,可以用 Promise.all(),这种写法比较优雅。

如果不会,那应该是用同步的 ajax ,应该是可以的,看你那个结果有两条 7 和 8,不知道跟上面的 id ['7', '8'] 有什么关系?

把代码简化一下,贴全,先确保 success 的回调函数里面能 log 两次。