代码之家  ›  专栏  ›  技术社区  ›  Prabu

在javascript/jquery中对XML进行排序

  •  2
  • Prabu  · 技术社区  · 17 年前

    我试图用jquery对一些XML进行排序,但此代码不会影响实际的XML,也不会返回排序后的结果。

    这个代码有什么问题吗?

    $(xml).find('Tag').get().sort(function(a, b) {
        return $(a).find('Name').text() < $(b).find('Name').text() ? -1 : 1;
    });
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Chris    15 年前

    get函数创建并返回一个数组,然后您的代码对这个数组进行排序,然后呢?数组没有被引用到任何地方,所以它只是被删除。

    我怀疑您希望源XML文档能够改变以表示这种类型。您确定要改变XML还是访问排序后的数组就足够了?

    var sortedSet = $(xml).find('Tag').get().sort(function(a, b) {
      var valA = $(a).find('Name').text();
      var valB = $(b).find('Name').text();
      return valA < valB ? -1 : valA == valB ? 0 : 1;
    });
    

    改变XML有点棘手,尤其是当发现“标记”比作为XML的直接子级更深时。