【问题标题】:JavaScript/JQuery/JSON append the 'i' of a for loop on an attributeJavaScript/JQuery/JSON 在属性上附加 for 循环的“i”
【发布时间】:2020-08-23 18:24:26
【问题描述】:

我有 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);
}

【问题讨论】:

  • 什么是imgContainer?
  • 为什么你使用obj.img0,..... obj.imgN 而不是仅仅使用图像数组?
  • 令人困惑的是,您将有关错误消息的 cmets 放在 不同 行而不是它们(可能)发生的位置。

标签: javascript jquery arrays json ajax


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这是给你的解决方案:

    for (var i=0; i<imgContainer.length; i++) { 
    
         $("#img" + i).attr("src", receivedProduct[".img" + i]);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 2021-08-15
      • 2021-03-03
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多