【问题标题】:cannot get data through each()无法通过 each() 获取数据
【发布时间】:2015-12-04 07:56:52
【问题描述】:

对不起,我对此还是很陌生。在我的 ajax 成功中,我无法从这个数组中获取数据。我正在尝试遍历productVariantImages 以获取两个imagePath 但我只能从id 496 中获取一个。下面是数组的示例。

如果可能的话,我想使用对象而不是数组

[1] => Array
    (
      [id] => 194
      [sku] => Apple SKU2
      [variantName] => Pear 2
      [productVariantImages] => Array
      (
         [0] => Array
           (
             [id] => 496
             [imageName] => Apples in season.png
             [imagePath] => http://tos-staging-web-server-s3.s3.amazonaws.com/9/catalogue/apples_in_season.png
             [visible] => 1
             [featured] => 
             [modifiedDate] => 1448293975
             [createDate] => 1448293975
           )

          [1] => Array
           (
             [id] => 266
             [imageName] => Apples in season.png
             [imagePath] => http://tos-staging-web-server-s3.s3.amazonaws.com/9/catalogue/apples_in_season.png
             [visible] => 1
             [featured] => 
             [modifiedDate] => 1448293975
             [createDate] => 1448293975
           )

        )
     )

我的 ajax

success: function(data){
    ...
    var thumbnails = {};
    $.each(data.productVariantImages,function(i, productVariantImages){
        thumbnails[data.sku] = this.imagePath;    
    });
    ...
 }       

电流输出

{Apple SKU2: "http://tos-staging-web-server-s3.s3.amazonaws.com/9/catalogue/apples_in_season.png"}

期望的输出:尝试迭代并获取键/值值,如图所示

{Apple SKU2: "http://tos-staging-web-server-s3.s3.amazonaws.com/9/catalogue/apples_in_season.png",
 Apple SKU2: "http://tos-staging-web-server-s3.s3.amazonaws.com/9/catalogue/apples_in_season.png"}

【问题讨论】:

  • $.each(data.productVariantImages,function(key, val){ thumbnails[data.sku] = val; });
  • @Navoneel 我的控制台将打印出{Apple SKU2: Object}
  • 他的意思是$.each(data.productVariantImages,function(key, val){ thumbnails[data.sku] = val.imagePath; });

标签: jquery ajax for-loop


【解决方案1】:

你试图达到的目标是不可能的。对象项键在任何时候都应该是唯一的。 Check this post.

对你来说最好的解决方案是一个包含图像的数组:

$.each(data.productVariantImages,function(key, val){ 
    thumbnails.push(val.imagePath);
});

获取单个图像

var imageOne = thumbnails[0];

循环浏览图片

for(var thumb in thumbnails) {
// do stuff
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2014-02-13
    • 2021-11-30
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多