jQuery .each对象排序

时间:2013-12-10 21:54:11

标签: javascript php jquery arrays json

我有一个PHP文件,它会抓取某些类的外部URL,然后将它们放入一个数组中。然后我使用json_encode()编码数组。数组按其必须迭代的顺序排列,但由于某种原因,JSON不按正确的顺序迭代。它按降序排列,而不是按升序排列。

以下是返回的JSON示例:

[{
   "id":1,
   "info":
         {
            "title":"Design Prepaid cards with HD quality ",
            "titleurl":"http:\/\/www.peopleperhour.com\/job\/design-prepaid-ards-with-hd-quality-380258",
            "price":"\u00a3 400 ",
            "urgent":"Urgent",
             "jobID":"380258"
         }
 },
 {
    "id":2,
    "info":
         {
             "title":"Charted accontant",
             "titleurl":"http:\/\/www.peopleperhour.com\/job\/charted-accontant-380251",
             "price":"\u00a3 60 ",
             "urgent":"Urgent",
             "jobID":"380251"
         }
 }]

这就是我目前正在显示JSON的方式:

    var jsonResults = JSON.parse(data);

    var count = (jsonResults.length);
    // Iterate Through Results
    $.each(jsonResults, function(key, value)
    {

        // Display Data
        $('#resultsPanel').fadeIn('slow');

        $('#resultsPanel').prepend(
            '<div class="item" id="'+ value.info.jobID +'">'+
            '<div class="title"><a href="'+ value.info.titleurl+'" target="_blank">'+ value.info.title +'</a></div>'+
            '<div class="price">'+ value.info.price +'</div>'+
            '</div>'
        );
    });

是否可以订购JSON?

3 个答案:

答案 0 :(得分:4)

见这部分:

$('#resultsPanel').prepend(
“prepend”意味着“放在开头”,这将颠倒你的列表(将项目1放在开头,然后将项目2放在开头,等等......)。我很确定你的意思是:

$('#resultsPanel').append(

答案 1 :(得分:1)

对象是无序集。您无法以跨浏览器的方式指定订单。没有原始订单的概念,除非它已经按规则排序。

然后对服务器上的数据进行排序,然后以相同的排序顺序对其进行枚举。

修改

正如我在下面提到的,我的jQuery知识很少,但也许这样的东西可以工作:

var jsonResults = JSON.parse(data);
Object.keys(jsonResults).reverse().forEach(function (key, value) {
    // do something here
});

答案 2 :(得分:0)

还有一个类似的问题可能会给你答案: sort json object in javascript