如何使用javascript/jquery打印数据

How to print data using javascript/jquery

本文关键字:打印 数据 jquery 何使用 javascript      更新时间:2023-10-15

我有下一个js代码。

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中的结果。在第一行myData[0].displayName.下一行是所有myData[i].displayName事件,指示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>");
}

如果这只是为了调试,请使用JSON.stringify(myData)将数据解析为JSON字符串。这样一来,您就可以将属性名称和值紧挨着。

然后使用console.logdiv.innerText写出文本。

例如,假设您有一个类为"output"的div:

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

您还可以打开调试器控制台,并使用以下工具查看控制台输出:

console.log(JSON.stringify(myData));
//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);

在上面的myData数组中,为每个对象推送两个元素。

  • 一个对象,具有id和displayName属性
  • 具有displayNameEvent和displayNameArtist数组的第二个对象

由于这两个数组元素之间没有关系,我们无法正确打印数据,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
...