javascript - 访问 Ajax 调用中加载的数组元素

标签 javascript jquery

我通过 Ajax 调用从数据库获取一组逗号分隔的字符串,如下所示

b-819-0,b-819-1,b-819-2

我尝试使用将其加载到数组中

let imgNames = []; 
imgNames.push(obj[i]['indicators'].split(','));

现在记录数组看起来没问题:

enter image description here

但是当我尝试访问循环中的元素时,例如

 for (let i = 0; i <2; i++) { 
  inx += '<li class="list-inline-item"> <div class="product" data-fname="'+imgNames[i]+'"></div></li>';
  }  

它仅将数组的所有元素转储到第一个 fname 中!并向其他添加 undefined 。正如您所看到的,imgNames 数组中已经有 3 个元素!

为什么会发生这种情况以及如何解决这个问题?

最佳答案

imgNames 是一个只有一个元素的数组,即逗号分隔数组。

发生这种情况是因为您将 obj[i]['indicators'].split(',') 插入空的 imgNames 数组中。

您的代码应该是:

let tuples = obj[i]['indicators'].split(',')
tuples.forEach(imgNames.push)

假设imgNames不为空

如果没有,则只需执行 let imgNames = obj[i]['indicators'].split(',')

关于javascript - 访问 Ajax 调用中加载的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874957/

相关文章:

javascript - 针对另一个对象的 JSON 递归值替换

javascript - 如何统计复选框选中值的总数

javascript - 如何将图像从主页发送到另一个?

javascript - 更改具有不同宽度的元素目标

javascript - JS-在 onclick() 事件中链接到文档内的 anchor

javascript - 谷歌分析 : Ecommerce data not being sent

javascript - Three.js Mesh 没有使用 AnimationHandler 进行动画处理

javascript - 是否可以将多个音频文件相互叠加,最好使用javascript

c# - 如何通过外部按钮一次性将jqgrid数据添加到数据库中

jquery - 有什么方法可以证明单段落行的合理性吗?