{
"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)中的值。怎么实现这个?谢谢
答案 0 :(得分: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;
});
});
答案 1 :(得分:0)
这不是一个多维数组,即一个将数组作为属性的对象。
要遍历数组,循环中需要另一个循环。使用单独的计数器来跟踪图像编号。
var count = 1;
$.each(data, function(i, row){
$.each(row, function(j, item){
$('#img' + count).attr('src', item);
count++;
});
});
注意:对象中的属性没有特定的顺序,因此它们可能会以不同的顺序排列,具体取决于访问者使用的浏览器。
答案 2 :(得分: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++;
});
});