2013-11-26 56 views
1

我有下一個js代碼。如何使用javascript/jquery打印數據

var myData=[]; 
for(j=1;j<=Pages;j++) 
{ 
$.ajax({ 
     type: 'get', 
     url: 'link.xml'+j, 
     async: false, 
     dataType: 'xml', 
     success: function(data){ 
      getData(data); 
     }, 
     error: function(data){ 
      console.log("error"); 
     } 
    }); 
} 
function getData(data){ 


    var tmpData = {id:'' , displayName:''}; 

    //taking the values and storing them to myData 


      myData.push(tmpData); 
      tmpData = {id:'' , displayName:'', eventsHref: []}; 


} 


    for(i=0;i<myData.length;i++) 
    { 
    $.ajax({ 
     type: 'get', 
     url: 'somelink'+data[i].id, 
     async: false, 
     dataType: 'xml', 
     success: function(events){ 
      getUpEvents(events); 
     }, 
     error: function(events){ 
      console.log("error"); 
     } 
    }); 
    } 
    function getUpEvents(events){ 

    var tmpEvents = {displayNameEvent:[] , displayNameArtist: []}; 

    //taking some other values and storing them to myData 

    myData.push(tmpEvents); 
    tmpEvents = {displayNameEvent:[] , displayNameArtist:[]}; 

} 

我們瞭解myData的與特定的打印結果way.In第一行myData的[0] .displayName.Next線路中的全部myData的[I] .displayNameEvents指示到myData的[0] .displayName和所有myData [i] .displayNameArtist.After後,它將打印下一個myData [1] .displayName,繼續。

以下是我如何打印它們。

for(i=0;i<myData.length;i++) 
{ 
     document.write(myData[i].displayName+"<br>"); 
     document.write(myData[i].displayNameEvent+"<br>"); 
     document.write(myData[i].displayNameArtist+"<br>"); 
} 
+4

不要使用'document.write' - http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice – Halcyon

回答

0
//Create a div to hold the results 
var results = $("<div/>"); 

//Loop through the data and append each value wrapped in a p to the div 
for(i=0;i<myData.length;i++) 
{ 
     results.append("<p>" + myData[i].displayName + "</p>"); 
     results.append("<p>" + myData[i].displayNameEvent + "</p>"); 
     results.append("<p>" + myData[i].displayNameArtist + "</p>"); 
} 

//append the div to the body 
$("body").append(results); 
+0

這是現在的結果: 繆斯 危險繆斯 不確定 不確定 我覺得這事錯與對Ajax請求的循環。 – user3014089

+0

@ user3014089你使用FF嗎?如果是的話,你可以console.log ajax響應?如果沒有這些數據,這將很難提供幫助。 –

+0

什麼是ff?我是javascript新手 – user3014089

1

如果這只是爲了調試,使用JSON.stringify(myData)將數據解析成JSON字符串。通過這種方式,您可以將物業名稱和價值都放在彼此旁邊。

然後用console.logdiv.innerText寫出文本。

例如,假設你有一個類「輸出」一個div:

$('.output').text(JSON.stringify(myData)); 

你也可以打開調試器控制檯,並查看控制檯輸出用:

console.log(JSON.stringify(myData)); 
+0

我沒有得到任何結果。 – user3014089

+0

您確定要取回數據嗎?嘗試放入'調試器';在getData(data)的最頂端。然後看看你收到的是什麼數據。 – Gopherkhan

0

在myData的上面的數組,兩個元素被推送給每個對象。

  • 一個對象,它具有ID和顯示名特性
  • 與displayNameEvent和displayNameArtist陣列第二對象

由於有這兩個陣列元件之間沒有關係,我們不能corrrectly打印數據,顯示名與其關聯的diasplayNameEvents和displayNameArtists。

我已經用JsFiddle中的一些虛擬數據重寫了上面的代碼。該代碼將id/displayName與displayNameEvent/displayNameArtist數組關聯,並按如下所示正確打印數據。

101s name 

101s event1, 101s event2 

101s artist1, 101s artist2 


102s name 

102s event1, 102s event2 

102s artist1, 102s artist2 


103s name 

103s event1, 103s event2 

103s artist1, 103s artist2 

...