2014-02-18 120 views
0

我想做一些循环与JavaScript和越来越问题。 我需要做的是从查询得到JSON结果:Javascript jquery,json循环问题

devices[1].data.deviceTypeString.value 
devices[2].data.deviceTypeString.value 

等 这里是代码。

<script> 
for (var x=0; x<5; x++) 
{ 


$.getJSON('0', function(data) { 

    var output = 'data.devices[' + x + '].data.deviceTypeString.value;' 

    document.write(output + "<br />"); 
}); 

} 

</script> 

问题是我没有得到JSON的结果。 我得到的结果就是这样的:

data.devices[0].data.deviceTypeString.value; 
data.devices[1].data.deviceTypeString.value; 
data.devices[2].data.deviceTypeString.value; 
data.devices[3].data.deviceTypeString.value; 
data.devices[4].data.deviceTypeString.value; 

请帮忙。

+0

输出是一个字符串,因为它的var output =“bla bla”;删除引用以改为使用该变量。 var x =“y”;与var x = y不一样; – MJoraid

+0

我现在没有收到结果。 :/。如果我手动输入数字:var output = data.devices [2] .data.deviceTypeString.value;它工作正常......但与变量而不是2它根本不工作。 – user3324547

回答

1

更换

var output = 'data.devices[' + x + '].data.deviceTypeString.value;' 

随着

var output=data.devices[x].data.deviceTypeString.value; 

,并请不要使用document.write ..

使用jquery之前也了解javascript

顺便说一句,你正在使用AJAX,它应该被称为顺序如果多个JSON文件..但我猜你需要调用它一次......这样:

$.getJSON('0', function(data) { 
for (var x=0; x<5; x++){ 
    var output=data.devices[x].data.deviceTypeString.value, 
    div=document.createElement('div'); 
    div.textContent=output; 
    document.body.appendChild(div); 
} 
}); 

$.getJSON('0',function(data){ 
for(var x=0,out='';x<5;x++){ 
    out+=data.devices[x].data.deviceTypeString.value+'<br>', 
} 
document.body.innerHTML=out; 
}); 
+0

我现在没有收到结果。 :/。如果我手动输入数字:var output = data.devices [2] .data.deviceTypeString.value;它工作正常......但与变量而不是2它根本不工作 – user3324547

+0

是你的文件称为'0'?这两个功能都可以工作......必须有别的东西.. – cocco