2013-11-26 5 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 [я] .displayNameEvents, что указывает на MyData [0] .displayName и все myData [i] .displayNameArtist. После этого будет напечатано следующее 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

Эти результаты прямо сейчас : Muse Dangerous Muse undefined undefined Я думаю, что что-то не так с петлями for на запросах ajax. – user3014089

+0

@ user3014089 Вы используете FF? Если это так, вы можете console.log ответ ajax? Трудно будет помочь в этом без данных. –

+0

Что такое ff? Я новичок в javascript – user3014089

1

Если это только для отладки, используйте JSON.stringify(myData) для анализа данных в строку JSON. Таким образом, у вас будет как имя свойства, так и значение рядом с eachother.

Затем используйте console.log или div.innerText, чтобы написать текст.

Например, предположим, у вас есть DIV с «выходом» класса:

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

Вы также можете открыть свой отладчик консоль и просмотреть вывод на консоль с:

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

В результате я ничего не получаю. – user3014089

+0

Вы уверены, что получаете данные назад? Попробуйте отказаться от «отладчика»; на самом верху getData (данные). Затем посмотрите, какие данные вы получаете. – Gopherkhan

0

В MyData массив выше, для каждого объекта толкаются два элемента.

  • один объект, который имеет идентификационный номер и DisplayName свойства
  • второй объект с displayNameEvent и displayNameArtist массив

Поскольку не существует никакой связи между этими двумя элементами массива, мы не можем распечатать данные corrrectly, DISPLAYNAME с его связанными 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 

... 
Смежные вопросы