【问题标题】:Ajax JQuery responses in a specific orderAjax JQuery 以特定顺序响应
【发布时间】:2012-01-18 16:13:52
【问题描述】:

我正在使用 AJAX 请求(使用 jQuery)从 XML 文件中检索数据。在将结果打印到页面上之前,我一直在徘徊,以特定顺序对结果进行排序的最佳方法是什么。

问题是我正在计算起始位置和 XML 中每个项目的位置,然后将该距离(在 jQuery 中)附加到每个项目。

除了项目在原始 XML 中的顺序相关的页面上列出之外,一切正常。

现在,我想做的是将列表从最小距离排序到最大距离,然后再将它们添加到页面...

在 jQuery/AJAX 中是否有任何“排序依据”的“排序依据”功能(或者这有什么意义)?

到目前为止,这是我所拥有的:

$.ajax({
type: "GET",
url: "blc.xml",
dataType: "xml",
success: parseXml
});

function parseXml(xml) {
$(xml).find("marker").each(function() {

var transit = $(this).find("transit").text();
var type = $(this).find("type").text();
var codepostal = $(this).find("codepostal").text();
var lat2 = $(this).find("lat").text();
var lng2 = $(this).find("lng").text();
var maxDist = 10;

if (newLatLon < maxDist) {
$("#list").append('<p id="' + transit + '">' + type + codepostal + '</p>');

 $("#" + transit).append(document.createTextNode(" " + newLatLon + " KM"));

} 

感谢您的意见! (请注意我不想以任何顺序拖动项目(如 jQuery UI),只是为了按特定顺序打印它们。

【问题讨论】:

  • 您要排序的值是什么类型?
  • (计算的)数字,如“10”、“9.85”、“6.5”等(不带引号)。

标签: ajax sorting jquery arraylist


【解决方案1】:

Tablesorter 是一个用于构建可排序表的 jquery 插件。 Therearemany,take your pick.

【讨论】:

  • 谢谢@Jason,但我猜这些插件需要在表格中结构化数据(这不是我的情况......)但即使将数据放在表格中,因为我'不想在页面上打印后对数据进行排序,而是在页面上打印之前对其进行排序,插件是不是有点矫枉过正?
  • 我不明白,你需要在页面上显示这个数据吗?如果是这样,我认为如果过度杀戮就不会插入
  • 对...我猜!无论如何,我按照@Jason 的建议使用了Tablesorter 插件。如果我能想出一个更好的解决方案,我会告诉你的。谢谢。
【解决方案2】:

你能用JavaScript函数sort()吗?

function sortNumber(a,b)
{
    return a - b;
}

var n = [10, 5, 40, 25, 100, 1];
var sorted = n.sort(sortNumber)
// sorted = [1, 5, 10, 25, 40, 100]

编辑:添加了 sortNumber 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2018-05-18
    相关资源
    最近更新 更多