Json使用for循环显示所有数据

时间:2014-01-21 07:52:06

标签: javascript jquery json

我的json是

[{"dir":"down","sym":"oo","b":"1.35553","a":"1.35556"},
{"dir":"down","sym":"pp","b":"1.64442","a":"1.64451"},
{"dir":"down","sym":"qq","b":"104.603","a":"104.609"},
{"dir":"up","sym":"rr","b":"0.88186","a":"0.88191"},
{"dir":"up","sym":"ss","b":"1.09667","a":"1.09672"}]

使用此jquery

<script type="text/javascript">
$(document).ready(function() {
setInterval(function() {
$.ajax({
    cache: false,
        url: 'quotes1.php',
        dataType: 'json',
    success: function(json){
        for(var i=0;i<json.length;i++){
            $('#divToRefresh').html(json[i].dir + '/' + json[i].sym+ '/' + json[i].b+ '/' + json[i].a);
        }
    }
});
}, 1000);  
});
</script>

但它只显示第一个数据

  

向上/ OO / 1.35553 / 1.35556

如何显示所有数据?

6 个答案:

答案 0 :(得分:3)

使用jQuery $.each()append()方法

success: function(json){
    $.each(json,function(i,val){
        $('#divToRefresh').append(val.dir + '/' + val.sym+ '/' + val.b+ '/' + val.a);
    });
}

html()将替换现有数据,因此它只显示最后一个值,但append()将有助于连接数据。

$.each优于for循环。

答案 1 :(得分:1)

使用.append()代替.html()。您也可以使用$.each()

success: function(json){
    $.each(json,function(i,value){
        $('#divToRefresh').append(value.dir + '/' + value.sym+ '/' + value.b+ '/' + value.a);
    });
}

答案 2 :(得分:0)

 $('#divToRefresh').append(json[i].dir + '/' + json[i].sym+ '/' + json[i].b+ '/' + json[i].a);

.html()将替换内容.append()将连接内容

答案 3 :(得分:0)

而不是以下代码:

for(var i=0;i<json.length;i++){
            $('#divToRefresh').html(json[i].dir + '/' + json[i].sym+ '/' + json[i].b+ '/' + json[i].a);
        }

使用以下代码:

$.each(JSON.parse(json), function(key,val){
  $('#divToRefresh').append(val.dir + '/' + val.sym+ '/' + val.b+ '/' + val.a);
});

答案 4 :(得分:0)

这很奇怪:我原本以为它会显示最后一个......

试试这个:

    for(var i=0;i<json.length;i++){
        $('#divToRefresh').append("<p>" + json[i].dir + '/' + json[i].sym+ '/' + json[i].b+ '/' + json[i].a + "</p>");
    }

答案 5 :(得分:0)

<script type="text/javascript">
$(document).ready(function() {

setInterval(function() {
$.ajax({
    cache: false,
        url: 'quotes1.php',
        dataType: 'json',
        success: function(json){
        var dd="";
        for(var i=0;i<json.length;i++){
            dd += json[i].dir + '-' + json[i].sym+ '-' + json[i].bid+ '-' + json[i].ask+'</br>';
        }
        $('#divToRefresh').html(dd);
    }
});
}, 1000);  
});
</script>