我的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
如何显示所有数据?
答案 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>