首页 > 解决方案 > JavaScript/JQuery/JSON 在属性上附加 for 循环的“i”

问题描述

我有 4 个图片位置保存在名为 img0、img1、img2 和 img3 的 JSON 文件中。我从每个 AJAX 调用的文件中获取数据(getJSON,保存在 var receivedProduct 中),然后我只是将它们发送到我页面上图像的“src”部分。

如果我使用它一切正常:

$("#img0").attr("src", receivedProduct.img0);
$("#img1").attr("src", receivedProduct.img1);
$("#img2").attr("src", receivedProduct.img2);
$("#img3").attr("src", receivedProduct.img3);

但是如果我想从中创建一个循环(因为重复的代码看起来不太好),我会收到错误“未定义”或“404 未找到”。

这是我尝试过的:

for (var i=0; i<imgContainer.length; i++) { 

     $("#img" + [i]).attr("src", receivedProduct.img + [i]);
}

for (var i=0; i<imgContainer.length; i++) { 

     var newImg = "receivedProduct.img"+i; 
     $("#img" + [i]).attr("src", newImg);
}

标签: javascriptjqueryarraysjsonajax

解决方案


在第一次尝试中,将行更改为:

    $("#img" + i).attr("src", receivedProduct["img" + i]);
    //        ^^^                            ^^^^^^^^^^^

推荐阅读