【问题标题】:Parse json object of multidimensional array解析多维数组的json对象
【发布时间】:2012-12-05 10:38:57
【问题描述】:
{
    "prev": [
        "demo/medium/Web081112_P002_medium.jpg",
        "demo/medium/Web081112_P003_medium.jpg"
    ],
    "curr": [
        "demo/medium/Web081112_P004_medium.jpg",
        "demo/medium/Web081112_P005_medium.jpg"
    ],
    "next": [
        "demo/medium/Web081112_P006_medium.jpg",
        "demo/medium/Web081112_P007_medium.jpg"
    ]
}

这是我得到的json:

<script>
  $(document).ready(function(){
       $.ajax({
        type: "GET",
        url: "scandir.php",
        data: "page=5",
        dataType: 'json',
        success: function (data) { 
        $.each(data, function(i, data){
        $('#img'+i).attr('src',data[1]);
    });
    }
});
});
</script> 

我想这样做:Assign &lt;img id = "img1" src="demo/medium/Web081112_P002_medium.jpg"&gt; 等等....

收集的数据 [1] 仅捕获 (3,5,7) 列中的值。如何实施?谢谢

【问题讨论】:

标签: javascript jquery multidimensional-array


【解决方案1】:

因为你只是在这里设置第二个数据对象的 src 属性...

$('#img'+i).attr('src',data[1]);

你只得到 (3,7,5)...

你必须使用两个 $.each 循环来获取所有的 src..

试试这个

var k=1;

$.each(data, function(i, data1){
  $.each(data1, function(j, data2){
     $('#img' + k).attr('src', data2);
       k++;
   });
});

【讨论】:

    【解决方案2】:

    如果你的数组总是有两个元素,试试这个:

    $.each(data, function(i, data){
        $('#img'+(2*i)).attr('src',data[0]);
        $('#img'+(2*i + 1)).attr('src',data[1]);
    });
    

    如果你有两个以上,那么你需要一个内部循环:

    var idx = 0;
    $.each(data, function(i, data) {
        $.each(data[i], function(j, dataj) {
            $('#img'+(idx)).attr('src',dataj[j]);
            ++idx;
        });
    });
    

    【讨论】:

      【解决方案3】:

      这不是多维数组,而是以数组为属性的对象。

      要遍历数组,您需要在循环中再添加一个循环。使用单独的计数器来跟踪图像编号。

      var count = 1;
      $.each(data, function(i, row){
        $.each(row, function(j, item){
          $('#img' + count).attr('src', item);
          count++;
        });
      });
      

      注意:对象中的属性没有特定的顺序,因此它们可能以不同的顺序结束,具体取决于访问者使用的浏览器。

      【讨论】:

        猜你喜欢
        • 2016-03-18
        • 2011-01-30
        • 1970-01-01
        • 1970-01-01
        • 2012-11-16
        • 2015-06-02
        • 2022-01-19
        • 2018-08-06
        • 2014-07-04
        相关资源
        最近更新 更多