2014-02-18 158 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