0
{
    "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 <img id = "img1" src="demo/medium/Web081112_P002_medium.jpg">等等....

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

4

3 回答 3

0

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

$.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;
    });
});
于 2012-12-05T10:46:22.670 回答
0

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

要遍历数组,您需要循环内的另一个循环。使用单独的计数器来跟踪图像编号。

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

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

于 2012-12-05T10:48:16.587 回答
0

因为您只是在这里设置第二个数据对象的 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++;
   });
});
于 2012-12-05T10:51:02.917 回答