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

ここで2番目のデータオブジェクトのsrc属性を設定しているだけなので...

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

(3,7,5)のみを取得しています...

$.eachすべてのsrcを取得するには、2つのループを使用する必要があります。

これを試して

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 に答える
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

配列に常に 2 つの要素がある場合は、これを試してください。

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

2 つ以上ある場合は、内側のループが必要になります。

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 に答える