如何从排序函数传递数据进行显示?

时间:2015-05-08 08:49:45

标签: jquery sorting

我将我的json对象存储到全局变量中:

var getData= data; 

//我可以为这个

添加名称属性的值
 $("#Name").on("click",function()
 {
    $(".the-return").slideUp("normal",function()
    {
        //getData.responseData.sort('name');//to call the sorting function

    for (i = 0; i < getData.length; i++) {
    $(".the-return2").append("<div class='inside_return'>Name:" + getData[i].name +"</div>");

    }

    });
});

问题现在,我想在显示之前进行排序......所以我调用这样的函数:getData.responseData.sort('name');

我的排序功能:

getData.responseData.sort(function (a, b) {
    switch (sortOption) {
        case 1:
            a = a.name,
            b = b.name;
            type = "string";
        case 2:
            a = a.reputation,
            b = b.reputation;
            type = "numeric";
        // etc
    }
    if (type == "numeric")
    {
        // numeric comparison
        return a > b ? 1 : (a < b ? -1 : 0);
    } else if (type == "string") {

        // string comparison
        return a.localeCompare(b); 
    }
    // etc

    return;
});

现在的问题是,在调用排序函数后无法对数据进行排序和显示。如何在排序后正确启动对该函数的调用传递显示数据?

我正在考虑在我的排序函数结束时调用一个函数,将已排序的数据附加到一个名为-reval2的div中,如下所示:

上面的排序功能 ............ ...............

return a.localeCompare(b); 
        }
        // etc

        return;
display_all(b);//to call a function to append
    });

附加数据:

function display_all(sorted_data)
{
    for (i = 0; i < getData.length; i++) {
        $(".the-return2").append("<div class='inside_return'>Name:" + getData[i].name +"</div>");

        }
}

****但是它没有显示已排序的数据!

0 个答案:

没有答案